标签: profiling

找出PHP代码减速的位置(性能问题)

这是我在SO的第一个问题.

我有一个我公司的内部申请,我最近要求维护.这些应用程序是用PHP构建的,它的编码相当好(OO,DB Abstraction,Smarty),没有WTF-ish.

问题是应用程序非常慢.

我如何找出减缓应用程序速度的因素?我已经优化了代码,只进行了很少的数据库查询,所以我知道这是需要一段时间才能执行的PHP代码.我需要一些可以帮助我的工具,并且需要设计一个检查我的代码的策略.

我可以自己做检查/策略工作,但我需要更多的PHP工具来弄清楚我的应用程序在哪里.

思考?

php mysql performance profiling

29
推荐指数
3
解决办法
2万
查看次数

Java分析 - 如何通过方法分析我的应用程序获取方法?

我想运行我的Java应用程序,并且对于给定的工作负载能够看到:

  • 调用给定函数的次数
  • 相对而言每个函数调用的成本是多少(即每个函数执行需要多长时间)

我大致知道瓶颈在我的应用中的位置,但我需要一个更精细的粒度视图来缩小它.

谢谢

编辑 jvisualvm看起来像工具 - 它在大约30秒内识别出问题.我只需要知道"自我时间"在方法配置文件的上下文中意味着什么.谢谢

java profiling

29
推荐指数
2
解决办法
2万
查看次数

Rails有端口mvc-mini-profiler吗?

我是一个大风扇MiniProfiler通过贾罗德Dixon和堆栈溢出团队ASP.NET创建.是否有Rails应用程序的端口?

由于探查器的核心是JavaScript,JQuery.tmplLess似乎将后端移植到Rails是相当直接的,前端已经完成.

PIC1

PIC2

前端体系结构允许通过将自定义标识符附加到自定义标头(X-MiniProfiler-Ids)中的每个请求来进行POST和AJAX请求分析.

Python和GAE 有一个类似的端口.

尽管Rack Bug相当有趣,但UI并不富有 - 没有POST和AJAX支持,没有用于分析块的API,也不建议在生产中使用.

同样,生产中不支持开发模式下的 NewRelic,并且没有在每个页面上呈现的着名的MiniProfiler"chicklet".

Rails中是否有MiniProfiler端口?

profiling ruby-on-rails mvc-mini-profiler

29
推荐指数
3
解决办法
2095
查看次数

每次获取,计数和查询操作会占用多少数据存储读取?

我在读在谷歌App Engine的群体很多用户(FIG1,Fig2,图三)不能找出其中的大量数据存储的读取他们的帐单报告从何而来.
您可能知道,数据存储读取的上限为每天50K操作,高于您必须支付的预算.

50K操作听起来像很多资源,但不幸的是,似乎每个操作(Query,Entity fetch,Count ..)都隐藏了几个数据存储读取.

是否有可能通过API或一些其他方法来知道,有多少数据存储读取背后都隐藏着共同的RPC.get,RPC.runquery呼吁?

在这种情况下,Appstats似乎没用,因为它只提供RPC细节而不是隐藏的读取成本.

有这样一个简单的模型:

class Example(db.Model):
    foo = db.StringProperty()    
    bars= db.ListProperty(str)
Run Code Online (Sandbox Code Playgroud)

和数据存储区中的1000个实体,我对这些操作的成本感兴趣:

items_count =  Example.all(keys_only = True).filter('bars=','spam').count()

items_count = Example.all().count(10000) 

items = Example.all().fetch(10000)

items = Example.all().filter('bars=','spam').filter('bars=','fu').fetch(10000)

items = Example.all().fetch(10000, offset=500)

items = Example.all().filter('foo>=', filtr).filter('foo<', filtr+ u'\ufffd')
Run Code Online (Sandbox Code Playgroud)

google-app-engine rpc profiling billing google-cloud-datastore

29
推荐指数
1
解决办法
6535
查看次数

Xdebug和无分析输出

这是与PHP中的XDebug分析类似的问题- 无法获得输出但我的是在Windows上,我有指定的完整路径(这解决了他的问题)

即使我启用了探查器,我也没有得到任何输出.下面是xdebug设置的副本(我已经缩进了所有未被注释的选项.) - 请注意xdebug工作正常,因为我已经获得了标准的xdebug错误.如果它有任何区别我使用xampp,cakephp,php 5.3

任何帮助将不胜感激.

[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"

;xdebug.auto_trace = 0
;xdebug.collect_includes = 1
;xdebug.collect_params = 0
;xdebug.collect_return = 0
;xdebug.collect_vars = "Off"
;xdebug.default_enable = "On"
;xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD
;xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD
;xdebug.dump.COOKIE = ""
;xdebug.dump.FILES = ""
;xdebug.dump.GET = ""
;xdebug.dump.POST = ""
;xdebug.dump.REQUEST = ""
;xdebug.dump.SERVER = ""
;xdebug.dump.SESSION = ""
;xdebug.dump_globals = 1
;xdebug.dump_once = 1
;xdebug.dump_undefined = 0
;xdebug.extended_info = 1
;xdebug.file_link_format = ""
;xdebug.idekey = "" …
Run Code Online (Sandbox Code Playgroud)

php profiling cakephp xdebug

28
推荐指数
1
解决办法
1万
查看次数

LuaJIT 2优化指南

我正在寻找一个关于如何优化LuaJIT 2的 Lua代码的好指南.它应该关注LJ2细节,比如如何检测正在编译哪些迹线,哪些不是,等等.

有什么指针吗?收集Lua ML帖子的链接可以作为答案(这里总结这些链接的奖励积分.)

更新:我已将标题文本从"性能分析"更改为"优化"指南,因为这更有意义.

lua profiling

28
推荐指数
2
解决办法
1万
查看次数

C#WPF中的内存泄漏

我可以使用一些建议来跟踪C#中内存泄漏的原因.我理解什么是内存泄漏,我知道它们出现在C#中的原因,但我想知道你过去用什么工具/策略来解决它们?

我正在使用.NET Memory Profiler,我发现我关闭它管理的窗口后,我的一个巨大的主要对象是留在内存中,但我不知道如何处理严重的所有链接.

如果我不够清楚只是发一个问题的答案,我会编辑我的问题作为回应.谢谢!

c# profiling garbage-collection memory-leaks

27
推荐指数
2
解决办法
2万
查看次数

如何使用VS 2010或VS 2013配置已签名的装配体

我有一个使用AjaxControlToolkit.dll和Log4Net.dll的网站.

当我尝试在VS 2010上运行性能分析工具时,它会给我以下警告:

AjaxControlToolkit.dll已签名并且检测它将使其签名无效.如果您在没有仪器后事件的情况下继续重新签名二进制文件,则可能无法正确加载.

现在,如果我选择继续而不重新签名,则分析将开始,但程序集不会加载并提供ASP.NET异常.

instrumentation strongname profiling visual-studio-2010

27
推荐指数
5
解决办法
9118
查看次数

如何使用Python分析器获取调用树?

我曾经使用过系统监视器应用程序中内置的漂亮的Apple探查器.只要您的C++代码是使用调试信息编译的,您就可以对正在运行的应用程序进行采样,并打印出一个缩进的树,告诉您父函数在此函数中花费的时间百分比(以及正文与其他函数调用) .

例如,如果main调用function_1and function_2,function_2调用function_3,然后是main调用function_3:

main (100%, 1% in function body):
    function_1 (9%, 9% in function body):
    function_2 (90%, 85% in function body):
        function_3 (100%, 100% in function body)
    function_3 (1%, 1% in function body)
Run Code Online (Sandbox Code Playgroud)

我会看到这一点,然后想一想,"有些东西需要花费很长时间function_2才能完成代码.如果我希望我的程序更快,那就是我应该开始的地方."

我怎样才能最轻松地获得Python程序的精确分析输出?

我见过有人说这样做:

import cProfile, pstats
prof = cProfile.Profile()
prof = prof.runctx("real_main(argv)", globals(), locals())
stats = pstats.Stats(prof)
stats.sort_stats("time")  # Or cumulative
stats.print_stats(80)  # 80 = how many to print
Run Code Online (Sandbox Code Playgroud)

但与优雅的呼叫树相比,它相当混乱.如果你能轻易做到这一点,请告诉我,这会有所帮助.

python tree profiling

27
推荐指数
4
解决办法
1万
查看次数

导致这种过度"复合层","重新计算样式"和"更新层树"循环的原因是什么?

我对我们的一个webapps中过多的"复合层","重新计算样式"和"更新层树"事件非常感兴趣.我想知道这里是什么造成了他们.

如果您将Chrome指向我们快速移动的流之一,请说https://choir.io/player/beachmonks/github,并启用"FPS计",您可以看到应用程序可以达到大约60fps的大部分我们处于领先地位的时候.

但是,只要我向下滚动几条消息并保持屏幕不变,FPS速率就会急剧下降到10左右甚至更低.代码在这里做的是它呈现每个传入的消息,将其添加到顶部并向上滚动列表Npx,这是新消息的高度,以保持视口位置不变.

(我知道scrollTop会使屏幕无效,但我已经仔细地命令操作以避免布局颠簸.我也知道每秒发生的同步重绘,它是由jquery.sparkline引起的,但它与此讨论无关.)

这是我在尝试描述它时看到的内容. 低fps分析结果.

您认为可能导致大量的图层操作?

performance timeline profiling render google-chrome-devtools

27
推荐指数
3
解决办法
2万
查看次数