47 48 // Keep a strong reference to dump it later: 49 RendererStatsHolder.getInstance().add(parent, stats); 50 51 return stats; 52 } 53 54 public static void dumpStats() { 55 RendererStatsHolder.dumpStats(); 56 } 57 58 // context name (debugging purposes) 59 final String name; 60 // stats 61 final StatLong stat_cache_rowAA 62 = new StatLong("cache.rowAA"); 63 final StatLong stat_cache_rowAAChunk 64 = new StatLong("cache.rowAAChunk"); 65 final StatLong stat_cache_tiles 66 = new StatLong("cache.tiles"); 67 final StatLong stat_rdr_poly_stack_curves 68 = new StatLong("renderer.poly.stack.curves"); 69 final StatLong stat_rdr_poly_stack_types 70 = new StatLong("renderer.poly.stack.types"); 71 final StatLong stat_rdr_addLine 72 = new StatLong("renderer.addLine"); 73 final StatLong stat_rdr_addLine_skip 74 = new StatLong("renderer.addLine.skip"); 75 final StatLong stat_rdr_curveBreak 76 = new StatLong("renderer.curveBreakIntoLinesAndAdd"); 77 final StatLong stat_rdr_curveBreak_dec 78 = new StatLong("renderer.curveBreakIntoLinesAndAdd.dec"); 79 final StatLong stat_rdr_curveBreak_inc 80 = new StatLong("renderer.curveBreakIntoLinesAndAdd.inc"); 81 final StatLong stat_rdr_quadBreak 82 = new StatLong("renderer.quadBreakIntoLinesAndAdd"); 83 final StatLong stat_rdr_quadBreak_dec 84 = new StatLong("renderer.quadBreakIntoLinesAndAdd.dec"); 85 final StatLong stat_rdr_edges 86 = new StatLong("renderer.edges"); 87 final StatLong stat_rdr_edges_count 88 = new StatLong("renderer.edges.count"); 89 final StatLong stat_rdr_edges_resizes 90 = new StatLong("renderer.edges.resize"); 91 final StatLong stat_rdr_activeEdges 92 = new StatLong("renderer.activeEdges"); 93 final StatLong stat_rdr_activeEdges_updates 94 = new StatLong("renderer.activeEdges.updates"); 95 final StatLong stat_rdr_activeEdges_adds 96 = new StatLong("renderer.activeEdges.adds"); 97 final StatLong stat_rdr_activeEdges_adds_high 98 = new StatLong("renderer.activeEdges.adds_high"); 99 final StatLong stat_rdr_crossings_updates 100 = new StatLong("renderer.crossings.updates"); 101 final StatLong stat_rdr_crossings_sorts 102 = new StatLong("renderer.crossings.sorts"); 103 final StatLong stat_rdr_crossings_bsearch 104 = new StatLong("renderer.crossings.bsearch"); 105 final StatLong stat_rdr_crossings_msorts 106 = new StatLong("renderer.crossings.msorts"); 107 // growable arrays 108 final StatLong stat_array_dasher_dasher 109 = new StatLong("array.dasher.dasher.d_float"); 110 final StatLong stat_array_dasher_firstSegmentsBuffer 111 = new StatLong("array.dasher.firstSegmentsBuffer.d_float"); 112 final StatLong stat_array_stroker_polystack_curves 113 = new StatLong("array.stroker.polystack.curves.d_float"); 114 final StatLong stat_array_stroker_polystack_curveTypes 115 = new StatLong("array.stroker.polystack.curveTypes.d_byte"); 116 final StatLong stat_array_renderer_alphaline 117 = new StatLong("array.renderer.alphaline.int"); 118 final StatLong stat_array_renderer_crossings 119 = new StatLong("array.renderer.crossings.int"); 120 final StatLong stat_array_renderer_aux_crossings 121 = new StatLong("array.renderer.aux_crossings.int"); 122 final StatLong stat_array_renderer_edgeBuckets 123 = new StatLong("array.renderer.edgeBuckets.int"); 124 final StatLong stat_array_renderer_edgeBucketCounts 125 = new StatLong("array.renderer.edgeBucketCounts.int"); 126 final StatLong stat_array_renderer_edgePtrs 127 = new StatLong("array.renderer.edgePtrs.int"); 128 final StatLong stat_array_renderer_aux_edgePtrs 129 = new StatLong("array.renderer.aux_edgePtrs.int"); 130 // histograms 131 final Histogram hist_rdr_edges_count 132 = new Histogram("renderer.edges.count"); 133 final Histogram hist_rdr_poly_stack_curves 134 = new Histogram("renderer.polystack.curves"); 135 final Histogram hist_rdr_crossings 136 = new Histogram("renderer.crossings"); 137 final Histogram hist_rdr_crossings_ratio 138 = new Histogram("renderer.crossings.ratio"); 139 final Histogram hist_rdr_crossings_adds 140 = new Histogram("renderer.crossings.adds"); 141 final Histogram hist_rdr_crossings_msorts 142 = new Histogram("renderer.crossings.msorts"); 143 final Histogram hist_rdr_crossings_msorts_adds 144 = new Histogram("renderer.crossings.msorts.adds"); 145 final Histogram hist_tile_generator_encoding 146 = new Histogram("tile_generator.encoding"); 147 final Histogram hist_tile_generator_encoding_dist 148 = new Histogram("tile_generator.encoding.dist"); 149 // all stats 150 final StatLong[] statistics = new StatLong[]{ 151 stat_cache_rowAA, 152 stat_cache_rowAAChunk, 153 stat_cache_tiles, 154 stat_rdr_poly_stack_types, 155 stat_rdr_poly_stack_curves, 156 stat_rdr_addLine, 157 stat_rdr_addLine_skip, 158 stat_rdr_curveBreak, 159 stat_rdr_curveBreak_dec, 160 stat_rdr_curveBreak_inc, 161 stat_rdr_quadBreak, 162 stat_rdr_quadBreak_dec, 163 stat_rdr_edges, 164 stat_rdr_edges_count, 165 stat_rdr_edges_resizes, 166 stat_rdr_activeEdges, 167 stat_rdr_activeEdges_updates, 168 stat_rdr_activeEdges_adds, 169 stat_rdr_activeEdges_adds_high, 170 stat_rdr_crossings_updates, 171 stat_rdr_crossings_sorts, 172 stat_rdr_crossings_bsearch, 173 stat_rdr_crossings_msorts, 174 hist_rdr_edges_count, 175 hist_rdr_poly_stack_curves, 176 hist_rdr_crossings, 177 hist_rdr_crossings_ratio, 178 hist_rdr_crossings_adds, 179 hist_rdr_crossings_msorts, 180 hist_rdr_crossings_msorts_adds, 181 hist_tile_generator_encoding, 182 hist_tile_generator_encoding_dist, 183 stat_array_dasher_dasher, 184 stat_array_dasher_firstSegmentsBuffer, 185 stat_array_stroker_polystack_curves, 186 stat_array_stroker_polystack_curveTypes, 187 stat_array_renderer_alphaline, 188 stat_array_renderer_crossings, 189 stat_array_renderer_aux_crossings, 190 stat_array_renderer_edgeBuckets, 191 stat_array_renderer_edgeBucketCounts, 192 stat_array_renderer_edgePtrs, 193 stat_array_renderer_aux_edgePtrs 194 }; 195 // monitors 196 final Monitor mon_pre_getAATileGenerator 197 = new Monitor("MarlinRenderingEngine.getAATileGenerator()"); 198 final Monitor mon_rdr_addLine 199 = new Monitor("Renderer.addLine()"); 200 final Monitor mon_rdr_endRendering 201 = new Monitor("Renderer.endRendering()"); 202 final Monitor mon_rdr_endRendering_Y 203 = new Monitor("Renderer._endRendering(Y)"); 204 final Monitor mon_rdr_copyAARow 205 = new Monitor("Renderer.copyAARow()"); 206 final Monitor mon_pipe_renderTiles 207 = new Monitor("AAShapePipe.renderTiles()"); 208 final Monitor mon_ptg_getAlpha 209 = new Monitor("MarlinTileGenerator.getAlpha()"); 210 final Monitor mon_debug 211 = new Monitor("DEBUG()"); 212 // all monitors 213 final Monitor[] monitors = new Monitor[]{ | 47 48 // Keep a strong reference to dump it later: 49 RendererStatsHolder.getInstance().add(parent, stats); 50 51 return stats; 52 } 53 54 public static void dumpStats() { 55 RendererStatsHolder.dumpStats(); 56 } 57 58 // context name (debugging purposes) 59 final String name; 60 // stats 61 final StatLong stat_cache_rowAA 62 = new StatLong("cache.rowAA"); 63 final StatLong stat_cache_rowAAChunk 64 = new StatLong("cache.rowAAChunk"); 65 final StatLong stat_cache_tiles 66 = new StatLong("cache.tiles"); 67 final StatLong stat_rdr_addLine 68 = new StatLong("renderer.addLine"); 69 final StatLong stat_rdr_addLine_skip 70 = new StatLong("renderer.addLine.skip"); 71 final StatLong stat_rdr_curveBreak 72 = new StatLong("renderer.curveBreakIntoLinesAndAdd"); 73 final StatLong stat_rdr_curveBreak_dec 74 = new StatLong("renderer.curveBreakIntoLinesAndAdd.dec"); 75 final StatLong stat_rdr_curveBreak_inc 76 = new StatLong("renderer.curveBreakIntoLinesAndAdd.inc"); 77 final StatLong stat_rdr_quadBreak 78 = new StatLong("renderer.quadBreakIntoLinesAndAdd"); 79 final StatLong stat_rdr_quadBreak_dec 80 = new StatLong("renderer.quadBreakIntoLinesAndAdd.dec"); 81 final StatLong stat_rdr_edges 82 = new StatLong("renderer.edges"); 83 final StatLong stat_rdr_edges_count 84 = new StatLong("renderer.edges.count"); 85 final StatLong stat_rdr_edges_resizes 86 = new StatLong("renderer.edges.resize"); 87 final StatLong stat_rdr_activeEdges 88 = new StatLong("renderer.activeEdges"); 89 final StatLong stat_rdr_activeEdges_updates 90 = new StatLong("renderer.activeEdges.updates"); 91 final StatLong stat_rdr_activeEdges_adds 92 = new StatLong("renderer.activeEdges.adds"); 93 final StatLong stat_rdr_activeEdges_adds_high 94 = new StatLong("renderer.activeEdges.adds_high"); 95 final StatLong stat_rdr_crossings_updates 96 = new StatLong("renderer.crossings.updates"); 97 final StatLong stat_rdr_crossings_sorts 98 = new StatLong("renderer.crossings.sorts"); 99 final StatLong stat_rdr_crossings_bsearch 100 = new StatLong("renderer.crossings.bsearch"); 101 final StatLong stat_rdr_crossings_msorts 102 = new StatLong("renderer.crossings.msorts"); 103 final StatLong stat_str_polystack_curves 104 = new StatLong("stroker.polystack.curves"); 105 final StatLong stat_str_polystack_types 106 = new StatLong("stroker.polystack.types"); 107 final StatLong stat_cpd_polystack_curves 108 = new StatLong("closedPathDetector.polystack.curves"); 109 final StatLong stat_cpd_polystack_types 110 = new StatLong("closedPathDetector.polystack.types"); 111 // growable arrays 112 final StatLong stat_array_dasher_dasher 113 = new StatLong("array.dasher.dasher.d_float"); 114 final StatLong stat_array_dasher_firstSegmentsBuffer 115 = new StatLong("array.dasher.firstSegmentsBuffer.d_float"); 116 final StatLong stat_array_marlincache_rowAAChunk 117 = new StatLong("array.marlincache.rowAAChunk.resize"); 118 final StatLong stat_array_marlincache_touchedTile 119 = new StatLong("array.marlincache.touchedTile.int"); 120 final StatLong stat_array_renderer_alphaline 121 = new StatLong("array.renderer.alphaline.int"); 122 final StatLong stat_array_renderer_crossings 123 = new StatLong("array.renderer.crossings.int"); 124 final StatLong stat_array_renderer_aux_crossings 125 = new StatLong("array.renderer.aux_crossings.int"); 126 final StatLong stat_array_renderer_edgeBuckets 127 = new StatLong("array.renderer.edgeBuckets.int"); 128 final StatLong stat_array_renderer_edgeBucketCounts 129 = new StatLong("array.renderer.edgeBucketCounts.int"); 130 final StatLong stat_array_renderer_edgePtrs 131 = new StatLong("array.renderer.edgePtrs.int"); 132 final StatLong stat_array_renderer_aux_edgePtrs 133 = new StatLong("array.renderer.aux_edgePtrs.int"); 134 final StatLong stat_array_str_polystack_curves 135 = new StatLong("array.stroker.polystack.curves.d_float"); 136 final StatLong stat_array_str_polystack_types 137 = new StatLong("array.stroker.polystack.curveTypes.d_byte"); 138 final StatLong stat_array_cpd_polystack_curves 139 = new StatLong("array.closedPathDetector.polystack.curves.d_float"); 140 final StatLong stat_array_cpd_polystack_types 141 = new StatLong("array.closedPathDetector.polystack.curveTypes.d_byte"); 142 // histograms 143 final Histogram hist_rdr_edges_count 144 = new Histogram("renderer.edges.count"); 145 final Histogram hist_rdr_crossings 146 = new Histogram("renderer.crossings"); 147 final Histogram hist_rdr_crossings_ratio 148 = new Histogram("renderer.crossings.ratio"); 149 final Histogram hist_rdr_crossings_adds 150 = new Histogram("renderer.crossings.adds"); 151 final Histogram hist_rdr_crossings_msorts 152 = new Histogram("renderer.crossings.msorts"); 153 final Histogram hist_rdr_crossings_msorts_adds 154 = new Histogram("renderer.crossings.msorts.adds"); 155 final Histogram hist_str_polystack_curves 156 = new Histogram("stroker.polystack.curves"); 157 final Histogram hist_tile_generator_alpha 158 = new Histogram("tile_generator.alpha"); 159 final Histogram hist_tile_generator_encoding 160 = new Histogram("tile_generator.encoding"); 161 final Histogram hist_tile_generator_encoding_dist 162 = new Histogram("tile_generator.encoding.dist"); 163 final Histogram hist_tile_generator_encoding_ratio 164 = new Histogram("tile_generator.encoding.ratio"); 165 final Histogram hist_tile_generator_encoding_runLen 166 = new Histogram("tile_generator.encoding.runLen"); 167 final Histogram hist_cpd_polystack_curves 168 = new Histogram("closedPathDetector.polystack.curves"); 169 // all stats 170 final StatLong[] statistics = new StatLong[]{ 171 stat_cache_rowAA, 172 stat_cache_rowAAChunk, 173 stat_cache_tiles, 174 stat_rdr_addLine, 175 stat_rdr_addLine_skip, 176 stat_rdr_curveBreak, 177 stat_rdr_curveBreak_dec, 178 stat_rdr_curveBreak_inc, 179 stat_rdr_quadBreak, 180 stat_rdr_quadBreak_dec, 181 stat_rdr_edges, 182 stat_rdr_edges_count, 183 stat_rdr_edges_resizes, 184 stat_rdr_activeEdges, 185 stat_rdr_activeEdges_updates, 186 stat_rdr_activeEdges_adds, 187 stat_rdr_activeEdges_adds_high, 188 stat_rdr_crossings_updates, 189 stat_rdr_crossings_sorts, 190 stat_rdr_crossings_bsearch, 191 stat_rdr_crossings_msorts, 192 stat_str_polystack_types, 193 stat_str_polystack_curves, 194 stat_cpd_polystack_curves, 195 stat_cpd_polystack_types, 196 hist_rdr_edges_count, 197 hist_rdr_crossings, 198 hist_rdr_crossings_ratio, 199 hist_rdr_crossings_adds, 200 hist_rdr_crossings_msorts, 201 hist_rdr_crossings_msorts_adds, 202 hist_tile_generator_alpha, 203 hist_tile_generator_encoding, 204 hist_tile_generator_encoding_dist, 205 hist_tile_generator_encoding_ratio, 206 hist_tile_generator_encoding_runLen, 207 hist_str_polystack_curves, 208 hist_cpd_polystack_curves, 209 stat_array_dasher_dasher, 210 stat_array_dasher_firstSegmentsBuffer, 211 stat_array_marlincache_rowAAChunk, 212 stat_array_marlincache_touchedTile, 213 stat_array_renderer_alphaline, 214 stat_array_renderer_crossings, 215 stat_array_renderer_aux_crossings, 216 stat_array_renderer_edgeBuckets, 217 stat_array_renderer_edgeBucketCounts, 218 stat_array_renderer_edgePtrs, 219 stat_array_renderer_aux_edgePtrs, 220 stat_array_str_polystack_curves, 221 stat_array_str_polystack_types, 222 stat_array_cpd_polystack_curves, 223 stat_array_cpd_polystack_types 224 }; 225 // monitors 226 final Monitor mon_pre_getAATileGenerator 227 = new Monitor("MarlinRenderingEngine.getAATileGenerator()"); 228 final Monitor mon_rdr_addLine 229 = new Monitor("Renderer.addLine()"); 230 final Monitor mon_rdr_endRendering 231 = new Monitor("Renderer.endRendering()"); 232 final Monitor mon_rdr_endRendering_Y 233 = new Monitor("Renderer._endRendering(Y)"); 234 final Monitor mon_rdr_copyAARow 235 = new Monitor("Renderer.copyAARow()"); 236 final Monitor mon_pipe_renderTiles 237 = new Monitor("AAShapePipe.renderTiles()"); 238 final Monitor mon_ptg_getAlpha 239 = new Monitor("MarlinTileGenerator.getAlpha()"); 240 final Monitor mon_debug 241 = new Monitor("DEBUG()"); 242 // all monitors 243 final Monitor[] monitors = new Monitor[]{ |