这是我在SO的第一个问题.
我有一个我公司的内部申请,我最近要求维护.这些应用程序是用PHP构建的,它的编码相当好(OO,DB Abstraction,Smarty),没有WTF-ish.
问题是应用程序非常慢.
我如何找出减缓应用程序速度的因素?我已经优化了代码,只进行了很少的数据库查询,所以我知道这是需要一段时间才能执行的PHP代码.我需要一些可以帮助我的工具,并且需要设计一个检查我的代码的策略.
我可以自己做检查/策略工作,但我需要更多的PHP工具来弄清楚我的应用程序在哪里.
思考?
我想运行我的Java应用程序,并且对于给定的工作负载能够看到:
我大致知道瓶颈在我的应用中的位置,但我需要一个更精细的粒度视图来缩小它.
谢谢
编辑 jvisualvm看起来像工具 - 它在大约30秒内识别出问题.我只需要知道"自我时间"在方法配置文件的上下文中意味着什么.谢谢
我是一个大风扇MiniProfiler通过贾罗德Dixon和堆栈溢出团队ASP.NET创建.是否有Rails应用程序的端口?
由于探查器的核心是JavaScript,JQuery.tmpl和Less似乎将后端移植到Rails是相当直接的,前端已经完成.


前端体系结构允许通过将自定义标识符附加到自定义标头(X-MiniProfiler-Ids)中的每个请求来进行POST和AJAX请求分析.
Python和GAE 有一个类似的端口.
尽管Rack Bug相当有趣,但UI并不富有 - 没有POST和AJAX支持,没有用于分析块的API,也不建议在生产中使用.
同样,生产中不支持开发模式下的 NewRelic,并且没有在每个页面上呈现的着名的MiniProfiler"chicklet".
Rails中是否有MiniProfiler端口?
我在读在谷歌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
这是与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) 我正在寻找一个关于如何优化LuaJIT 2的 Lua代码的好指南.它应该关注LJ2细节,比如如何检测正在编译哪些迹线,哪些不是,等等.
有什么指针吗?收集Lua ML帖子的链接可以作为答案(这里总结这些链接的奖励积分.)
更新:我已将标题文本从"性能分析"更改为"优化"指南,因为这更有意义.
我可以使用一些建议来跟踪C#中内存泄漏的原因.我理解什么是内存泄漏,我知道它们出现在C#中的原因,但我想知道你过去用什么工具/策略来解决它们?
我正在使用.NET Memory Profiler,我发现我关闭它管理的窗口后,我的一个巨大的主要对象是留在内存中,但我不知道如何处理严重的所有链接.
如果我不够清楚只是发一个问题的答案,我会编辑我的问题作为回应.谢谢!
我有一个使用AjaxControlToolkit.dll和Log4Net.dll的网站.
当我尝试在VS 2010上运行性能分析工具时,它会给我以下警告:
AjaxControlToolkit.dll已签名并且检测它将使其签名无效.如果您在没有仪器后事件的情况下继续重新签名二进制文件,则可能无法正确加载.
现在,如果我选择继续而不重新签名,则分析将开始,但程序集不会加载并提供ASP.NET异常.
我曾经使用过系统监视器应用程序中内置的漂亮的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)
但与优雅的呼叫树相比,它相当混乱.如果你能轻易做到这一点,请告诉我,这会有所帮助.
我对我们的一个webapps中过多的"复合层","重新计算样式"和"更新层树"事件非常感兴趣.我想知道这里是什么造成了他们.
如果您将Chrome指向我们快速移动的流之一,请说https://choir.io/player/beachmonks/github,并启用"FPS计",您可以看到应用程序可以达到大约60fps的大部分我们处于领先地位的时候.
但是,只要我向下滚动几条消息并保持屏幕不变,FPS速率就会急剧下降到10左右甚至更低.代码在这里做的是它呈现每个传入的消息,将其添加到顶部并向上滚动列表Npx,这是新消息的高度,以保持视口位置不变.
(我知道scrollTop会使屏幕无效,但我已经仔细地命令操作以避免布局颠簸.我也知道每秒发生的同步重绘,它是由jquery.sparkline引起的,但它与此讨论无关.)
这是我在尝试描述它时看到的内容.
.
您认为可能导致大量的图层操作?
performance timeline profiling render google-chrome-devtools