Skip to content

Commit d4806e2

Browse files
committed
image: instrument with spans to measure performance
1 parent 7feee00 commit d4806e2

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

appstore/image.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import os
22
import io
33

4+
import beeline
5+
46
from flask import Flask
57
from PIL import Image, ImageDraw, ImageFont, ImageChops
68
from concurrent.futures import ThreadPoolExecutor, as_completed
@@ -143,8 +145,11 @@ def generate_preview_image(title, developer, icon, screenshots):
143145
for platform in platforms:
144146
image_ids[platform] = (screenshots[platform], platform_borders[platform]['fallback'])
145147

148+
span = beeline.start_span(context = { "name": "load_images" })
146149
loaded_images = load_images_parallel(image_ids)
150+
beeline.finish_span(span)
147151

152+
span = beeline.start_span(context = { "name": "render_images" })
148153
for platform in platforms:
149154
platform_image_in_border(
150155
canvas=canvas,
@@ -167,13 +172,22 @@ def generate_preview_image(title, developer, icon, screenshots):
167172
title_position = (title_position[0] + 88, title_position[1])
168173
author_position = (author_position[0] + 88, author_position[1])
169174
text_space -= 88
175+
beeline.finish_span(span)
170176

177+
span = beeline.start_span(context = { "name": "render_text" })
171178
draw_text_ellipsized(draw, title, font_large, title_position, text_space)
172179
draw_text_ellipsized(draw, developer, font_small, author_position, text_space)
180+
beeline.finish_span(span)
181+
182+
span = beeline.start_span(context = { "name": "encode_png" })
183+
184+
try:
185+
buffer = io.BytesIO()
186+
canvas.save(buffer, format='PNG')
187+
buffer.seek(0)
188+
finally:
189+
beeline.finish_span(span)
173190

174-
buffer = io.BytesIO()
175-
canvas.save(buffer, format='PNG')
176-
buffer.seek(0)
177191
return buffer.getvalue()
178192

179193
def init_app(app):

0 commit comments

Comments
 (0)