Questions tagged «profiling»

分析是通过运行称为探查器的分析工具来评估应用程序或系统的过程。分析工具可以集中在许多方面:函数调用次数和计数,内存使用率,CPU负载和资源使用率。


29
如何配置Python脚本?
欧拉计画和其他编码竞赛经常有最长的运行时间,或者人们吹嘘他们的特定解决方案的运行速度。使用Python时,有时这些方法有些繁琐-即向中添加计时代码__main__。 剖析Python程序需要花费多长时间的好方法是什么?

27
如何测量函数执行所需的时间
我需要获取执行时间(以毫秒为单位)。 我最初是在2008年问这个问题的。当时接受的答案是使用new Date()。getTime()。但是,我们现在都同意使用标准performance.now() API更合适。因此,我正在更改对此答案的公认答案。

3
为什么Python代码在函数中运行得更快?
def main(): for i in xrange(10**8): pass main() Python中的这段代码在其中运行(注意:计时是通过Linux中的BASH中的time函数完成的。) real 0m1.841s user 0m1.828s sys 0m0.012s 但是,如果for循环未放在函数中, for i in xrange(10**8): pass 那么它会运行更长的时间: real 0m4.543s user 0m4.524s sys 0m0.012s 为什么是这样?

8
建议使用哪个Python内存分析器?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 我想知道我的Python应用程序的内存使用情况,尤其想知道哪些代码块/部分或对象消耗了最多的内存。Google搜索显示商用的是Python Memory Validator(仅限Windows)。 开源的是PySizer和Heapy。 我没有尝试过任何人,所以我想知道哪个是最好的考虑因素: 提供大多数细节。 我必须要做最少的更改,也可以不做任何更改。

30
什么是一些好的.NET Profiler?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 在使用.net程序时,您使用了哪些分析器,特别推荐哪些?
374 c#  .net  profiling  profiler 

11
如何使用回调衡量JavaScript代码的执行时间?
我有一段使用node.js解释器执行的JavaScript代码。 for(var i = 1; i < LIMIT; i++) { var user = { id: i, name: "MongoUser [" + i + "]" }; db.users.save(user, function(err, saved) { if(err || !saved) { console.log("Error"); } else { console.log("Saved"); } }); } 如何测量这些数据库插入操作所花费的时间?我可以计算这段代码前后的日期值之差,但是由于代码的异步特性,这将是不正确的。

13
剖析PHP脚本的最简单方法
剖析PHP脚本的最简单方法是什么? 我喜欢在上面显示一些内容,这些内容可以显示所有函数调用的转储以及它们花了多长时间,但我也可以在特定函数周围添加一些内容。 我尝试使用microtime函数进行实验: $then = microtime(); myFunc(); $now = microtime(); echo sprintf("Elapsed: %f", $now-$then); 但这有时给我负面的结果。另外,在我的代码中撒满代码也很麻烦。
289 php  profiling 

10
在R中测量功能执行时间
R中测量功能执行时间的方法是否标准化? 显然,我可以system.time在执行之前和执行之后进行处理,然后加以区别,但是我想知道是否存在某种标准化的方式或功能(想不发明轮子)。 我似乎记得我曾经使用过以下方法: somesysfunction("myfunction(with,arguments)") > Start time : 2001-01-01 00:00:00 # output of somesysfunction > "Result" "of" "myfunction" # output of myfunction > End time : 2001-01-01 00:00:10 # output of somesysfunction > Total Execution time : 10 seconds # output of somesysfunction
281 r  time  profiling 

8
如何剖析Python中的内存使用情况?
最近,我对算法产生了兴趣,并通过编写一个简单的实现,然后以各种方式对其进行了优化来开始探索它们。 我已经熟悉了用于分析运行时的标准Python模块(对于大多数事情,我发现IPython中的timeit magic函数就足够了),但是我也对内存使用感兴趣,因此我也可以探索这些折衷方案(例如,缓存先前计算的值与根据需要重新计算它们的表的成本)。是否有一个模块可以为我配置给定功能的内存使用情况?
230 python  memory  profiling 


7
如何分析.hprof文件?
我的生产服务器运行时带有以下标志:-XX:+ HeapDumpOnOutOfMemoryError 昨晚,当我们的服务器遇到堆错误时,它生成了一个java-38942.hprof文件。事实证明,该系统的开发人员知道该标志,但是无法从中获取任何有用的信息。 有任何想法吗?
227 java  profiling  heap 

8
如何为命令行PHP脚本触发XDebug分析器?
XDebug提供了配置指令“ xdebug.profiler_enable_trigger”,该配置指令允许通过HTTP调用脚本时通过传递GET或POST参数“ XDEBUG_PROFILE”来激活分析。如果您不希望对所有脚本进行性能分析,而仅对一些特殊情况进行性能分析,而又不总是更改PHP配置,那么这非常方便。 有没有办法实现命令行PHP程序相同的行为?我试图将“ XDEBUG_PROFILE”作为命令行参数传递,但是它不起作用。 通常,分析命令行PHP可以很好地工作,但是我希望具有与浏览器和HTTP服务器相同的每次调用灵活性。 有什么建议?

7
gprof的替代品
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 还有哪些其他程序与gprof做相同的事情?

19
超越堆栈采样:C ++ Profiler
黑客的故事 日期是2010年12月2日。圣诞节前的日子不多了,作为Windows程序员,我几乎遇到了一个主要障碍。我一直在使用AQTime,尝试过困倦,发亮和非常困倦,而正如我们所说的,VTune正在安装。我曾尝试使用VS2008 Profiler,但它一直在积极地惩罚着人们,而且常常是不明智的。我使用了随机暂停技术。我已经检查了呼叫树。我已经解雇了功能痕迹。但令人悲伤的事实是,我正在使用的应用程序超过一百万行代码,可能还有价值一百万行的第三方应用程序。 我需要更好的工具。 我已经阅读了其他主题。 我已经尝试了每个主题中列出的每个事件探查器。简直就是必须有比这些笨拙而昂贵的选择更好的东西,或者可笑的工作量几乎没有收益。更复杂的是,我们的代码具有大量线程,并运行许多Qt Event循环,其中某些循环如此脆弱,以至于它们由于时序延迟而在繁重的测试中崩溃。不要问我为什么我们要运行多个事件循环。没有人能告诉我。 在Windows环境中,Valgrind还有更多选择吗? 有没有比我已经尝试过的一堆破烂的工具更好的东西了? 是否有任何旨在与Qt集成的东西,也许可以在队列中显示有用的事件? 我尝试过的工具的完整列表,以及在斜体中真正有用的工具: AQTime:很好!深度递归会遇到一些麻烦,但是在这些情况下,调用图是正确的,并且可以用来消除您可能遇到的任何混乱。不是一个完美的工具,但是值得尝试。它可能适合您的需求,并且在大多数情况下对我来说已经足够了。 调试模式下的随机暂停攻击:没有足够的时间信息。 一个好的工具,但不是一个完整的解决方案。 并行工作室: 核选项。引人入胜,古怪而疯狂。我认为您应该进行30天的评估,并确定是否合适。这也太酷了。 AMD Codeanalyst:很棒 ,易于使用,非常容易崩溃,但是我认为这是环境问题。我建议您尝试一下,因为它是免费的。 卢克·斯塔克沃克(Luke Stackwalker):在小型项目上运行良好,这是在尝试使其在我们的项目上运行。虽然有一些不错的结果,但是它绝对可以代替Sleepy来完成我的个人任务。 PurifyPlus:不支持Win-x64环境,最主要的是Windows7。否则,它非常出色。我在其他部门的许多同事对此表示肯定。 VS2008 Profiler:在功能跟踪模式下以所需的分辨率产生100 + gigs范围的输出。从好的方面来说,产生可靠的结果。 GProf:要求GCC还要适度有效。 VTune:VTune的W7支持犯罪分子的边界。否则优秀 PIN:我需要破解我自己的工具,所以这是最后的选择。 Sleepy \ VerySleepy:对于较小的应用程序很有用,但在这里让我失望。 EasyProfiler:如果您不介意使用一些手动注入的代码来指示要检测的位置,那还不错。 Valgrind:仅* nix,但在那种环境下非常好。 OProfile:仅Linux。 亵渎:他们射击野马。 我没有尝试过的建议工具: XPerf: 发光代码: 开发伙伴: 注意:目前是 Intel环境。VS2008,增强库。Qt 4+。而所有这些令人沮丧的杂物:通过trolltech进行Qt / MFC集成。 现在:大约两周后,看来我的问题已解决。借助各种工具,包括列表中的几乎所有内容以及我的一些个人技巧,我们找到了主要的瓶颈。但是,我将继续测试,探索和尝试新的探查器以及新技术。为什么?因为我欠你们,因为你们摇滚。它确实使时间线放慢了一点,但是我仍然很高兴继续尝试新工具。 简介 在许多其他问题中,最近将许多组件切换到了错误的线程模型,由于下面的代码突然不再是多线程的,导致了严重的问题。我不能说太多,因为它违反了我的NDA,但是我可以告诉您,通过偶然检查甚至常规代码检查都不会发现它。如果没有探查器,通话记录和随机暂停的共同作用,我们仍然会对天空的美丽蓝色弧线大怒。值得庆幸的是,我与一些我见过的最好的黑客一起工作,而且我可以接触到一个充满了强大工具和才华横溢的“诗篇”。 绅士们,我非常感谢您,很遗憾,我没有足够的代表来奖励你们每个人。我仍然认为,这是一个重要的问题,比到目前为止我们在SO上获得的答案更好。 …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.