IPython නෝට්බුක් එකක ඉක්මන් පැතිකඩ සංඛ්යාන ලබා ගැනීම සඳහා. කෙනෙකුට line_profiler සහ memory_profiler කෙලින්ම ඔවුන්ගේ සටහන් පොත් වලට ඇතුළත් කළ හැකිය .
තවත් ප්රයෝජනවත් පැකේජයක් වන්නේ පිම්ප්ලර් ය . එය පංති, වස්තූන්, කාර්යයන්, මතක කාන්දුවීම් ආදිය නිරීක්ෂණය කළ හැකි ප්රබල පැතිකඩ පැකේජයකි. පහත උදාහරණ, ලියකියවිලි අමුණා ඇත.
එය ලබා ගන්න!
!pip install line_profiler
!pip install memory_profiler
!pip install pympler
එය පටවන්න!
%load_ext line_profiler
%load_ext memory_profiler
එය භාවිතා කරන්න!
%කාලය
%time print('Outputs CPU time,Wall Clock time')
#CPU times: user 2 µs, sys: 0 ns, total: 2 µs Wall time: 5.96 µs
ලබා දෙයි:
- CPU වේලාවන්: CPU මට්ටමේ ක්රියාත්මක කාලය
- sys times: පද්ධති මට්ටමේ ක්රියාත්මක කිරීමේ කාලය
- එකතුව: CPU වේලාව + පද්ධති කාලය
- බිත්ති කාලය: බිත්ති ඔරලෝසු කාලය
% timeit
%timeit -r 7 -n 1000 print('Outputs execution time of the snippet')
#1000 loops, best of 7: 7.46 ns per loop
- ලූප (n) වේලාවන්හි දී ලබා දී ඇති ලකුණු ගණන (r) වලින් හොඳම කාලය ලබා දෙයි.
- පද්ධති හැඹිලිය පිළිබඳ නිමැවුම් විස්තර:
- කේත ස්නිපෙට් කිහිප වතාවක් ක්රියාත්මක කරන විට, පද්ධතිය ක්රියාකාරීත්වයන් කිහිපයක් හැඹිලිගත කරන අතර ඒවා නැවත ක්රියාත්මක නොකරන්නේ එය පැතිකඩ වාර්තා වල නිරවද්යතාවයට බාධාවක් විය හැකිය.
% කප්පාදු
%prun -s cumulative 'Code to profile'
ලබා දෙයි:
- ශ්රිත ඇමතුම් ගණන (ncalls)
- එක් ශ්රිත ඇමතුමකට ඇතුළත් කිරීම් ඇත (වෙනස්)
- ඇමතුමකට ගතවන කාලය (percall)
- එම ශ්රිත ඇමතුම දක්වා කාලය ගතවී ඇත (සමුපකාරය)
- යනාදිය නමින් හැඳින්වෙන ෆන්ක් / මොඩියුලයේ නම ...
% මතක
%memit 'Code to profile'
#peak memory: 199.45 MiB, increment: 0.00 MiB
ලබා දෙයි:
% lprun
#Example function
def fun():
for i in range(10):
print(i)
#Usage: %lprun <name_of_the_function> function
%lprun -f fun fun()
ලබා දෙයි:
sys.getsizeof
sys.getsizeof('code to profile')
# 64 bytes
වස්තුවක ප්රමාණය බයිට් වලින් ලබා දෙයි.
pizepler වෙතින් asizeof ()
from pympler import asizeof
obj = [1,2,("hey","ha"),3]
print(asizeof.asizeof(obj,stats=4))
සමහර පයිතන් වස්තූන් කොපමණ මතකයක් පරිභෝජනය කරනවාද යන්න සොයා බැලීමට pympler.asizeof භාවිතා කළ හැකිය. Sys.getsizeof ට ප්රතිවිරුද්ධව, asizeof ප්රමාණයේ වස්තූන් පුනරාවර්තනය වේ
pimpler වෙතින් ට්රැකර්
from pympler import tracker
tr = tracker.SummaryTracker()
def fun():
li = [1,2,3]
di = {"ha":"haha","duh":"Umm"}
fun()
tr.print_diff()
ශ්රිතයක ආයු කාලය නිරීක්ෂණය කරයි.
Pympler පැකේජය පැතිකඩ කේතයට ඉහළ උපයෝගීතා කාර්යයන් විශාල ගණනකින් සමන්විත වේ. මේ සියල්ල මෙහි ආවරණය කළ නොහැක. වාචික පැතිකඩ ක්රියාත්මක කිරීම සඳහා අමුණා ඇති ප්රලේඛනය බලන්න.
Pympler doc