MCPcopy Create free account
hub / github.com/pymupdf/PyMuPDF / test_4125

Function test_4125

tests/test_memory.py:158–237  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

156
157
158def test_4125():
159 if os.environ.get('PYODIDE_ROOT'):
160 print('test_4125(): not running on Pyodide - No module named \'psutil\'.')
161 return
162
163 if os.environ.get('PYMUPDF_RUNNING_ON_VALGRIND') == '1':
164 print(f'test_4125(): not running because PYMUPDF_RUNNING_ON_VALGRIND=1.')
165 return
166 if platform.system().startswith('MSYS_NT-'):
167 print(f'test_4125(): not running on msys2 - psutil not available.')
168 return
169
170 print('')
171 print(f'test_4125(): {platform.python_version()=}.')
172
173 path = os.path.normpath(f'{__file__}/../../tests/resources/test_4125.pdf')
174 import gc
175 import psutil
176
177 root = os.path.normpath(f'{__file__}/../..')
178 sys.path.insert(0, root)
179 try:
180 import pipcl
181 finally:
182 del sys.path[0]
183
184 process = psutil.Process()
185
186 class State: pass
187 state = State()
188 state.rsss = list()
189 state.prev = None
190
191 def get_stat():
192 rss = process.memory_info().rss
193 if not state.rsss:
194 state.prev = rss
195 state.rsss.append(rss)
196 drss = rss - state.prev
197 state.prev = rss
198 print(f'test_4125():'
199 f' {rss=:,}'
200 f' rss-rss0={rss-state.rsss[0]:,}'
201 f' drss={drss:,}'
202 f'.'
203 )
204
205 for i in range(10):
206 with pymupdf.open(path) as document:
207 for page in document:
208 for image_info in page.get_images(full=True):
209 xref, smask, width, height, bpc, colorspace, alt_colorspace, name, filter_, referencer = image_info
210 pixmap = pymupdf.Pixmap(document, xref)
211 if pixmap.colorspace != pymupdf.csRGB:
212 pixmap2 = pymupdf.Pixmap(pymupdf.csRGB, pixmap)
213 del pixmap2
214 del pixmap
215 pymupdf.TOOLS.store_shrink(100)

Callers

nothing calls this directly

Calls 6

get_statFunction · 0.85
get_imagesMethod · 0.80
store_shrinkMethod · 0.80
glyph_cache_emptyMethod · 0.80
StateClass · 0.70
getMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…