Python中文
首页
教程
问答
标签
搜索
登录
注册
我的python脚本花在哪里了?我的cprofile/pstats跟踪中是否有“缺少时间”?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在尝试评测一个长时间运行的python脚本。该脚本使用<a href="http://pypi.python.org/pypi/GDAL/" rel="nofollow noreferrer">gdal module</a>对栅格GIS数据集进行一些空间分析。该脚本目前使用三个文件,主脚本在光栅像素上循环称为<code>find_pixel_pairs.py</code>,在<code>lrucache.py</code>中有一个简单的缓存,<code>utils.py</code>中有一些misc类。我在一个中等大小的数据集上分析了代码。<code>pstats</code>返回:</p> <pre><code> p.sort_stats('cumulative').print_stats(20) Thu May 6 19:16:50 2010 phes.profile 355483738 function calls in 11644.421 CPU seconds Ordered by: cumulative time List reduced from 86 to 20 due to restriction <20> ncalls tottime percall cumtime percall filename:lineno(function) 1 0.008 0.008 11644.421 11644.421 <string>:1(<module>) 1 11064.926 11064.926 11644.413 11644.413 find_pixel_pairs.py:49(phes) 340135349 544.143 0.000 572.481 0.000 utils.py:173(extent_iterator) 8831020 18.492 0.000 18.492 0.000 {range} 231922 3.414 0.000 8.128 0.000 utils.py:152(get_block_in_bands) 142739 1.303 0.000 4.173 0.000 utils.py:97(search_extent_rect) 745181 1.936 0.000 2.500 0.000 find_pixel_pairs.py:40(is_no_data) 285478 1.801 0.000 2.271 0.000 utils.py:98(intify) 231922 1.198 0.000 2.013 0.000 utils.py:116(block_to_pixel_extent) 695766 1.990 0.000 1.990 0.000 lrucache.py:42(get) 1213166 1.265 0.000 1.265 0.000 {min} 1031737 1.034 0.000 1.034 0.000 {isinstance} 142740 0.563 0.000 0.909 0.000 utils.py:122(find_block_extent) 463844 0.611 0.000 0.611 0.000 utils.py:112(block_to_pixel_coord) 745274 0.565 0.000 0.565 0.000 {method '<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>' of 'list' objects} 285478 0.346 0.000 0.346 0.000 {max} 285480 0.346 0.000 0.346 0.000 utils.py:109(pixel_coord_to_block_coord) 324 0.002 0.000 0.188 0.001 utils.py:27(__init__) 324 0.016 0.000 0.186 0.001 gdal.py:848(ReadAsArray) 1 0.000 0.000 0.160 0.160 utils.py:50(__init__) </code></pre> <p>前两个调用包含主循环-整个分析。剩下的通话总计不到11644秒中的625次。剩下的11000秒花在哪里了?它们都在<code>find_pixel_pairs.py</code>的主循环中吗?如果是这样,我能找出哪些代码行占用了大部分时间?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您是对的,大部分时间都花在<code>find_pixel_pairs.py</code>第49行的<code>phes</code>函数中。要了解更多信息,您需要将<code>phes</code>分解成更多的子功能,然后重新编译。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
9 回答
无法使用Django\u mssql\u后端迁移到外部hos
8 回答
无法使用Django&Python3.4连接到MySql
9 回答
无法使用Django+nginx上载媒体文件
3 回答
无法使用Django1.6导入名称模式
6 回答
无法使用Django1.7和mongodb登录管理站点
9 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
1 回答
无法使用Djangockedi验证CBV中的字段
6 回答
无法使用Djangocketditor上载图像(错误400)
10 回答
无法使用Djangocron进行函数调用
4 回答
无法使用Djangofiler djang上载文件
4 回答
无法使用Djangokronos
7 回答
无法使用Djangomssql provid
1 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
3 回答
无法使用Djangomssq迁移Django数据库
1 回答
无法使用Djangonox创建用户
2 回答
无法使用Djangopyodb从Django查询SQL Server
2 回答
无法使用Djangopython3ldap连接到ldap
8 回答
无法使用Djangoredis连接到redis
7 回答
无法使用Django中的FK创建新表
3 回答