与渐近分析有什么不同? 你什么时候使用它,为什么? 我读过一些似乎写得很好的文章,比如: http://www.ugrad.cs.ubc.ca/~cs320/2010W2/handouts/aa-nutshell.pdf http://www.cs.princeton.edu/~fiebrink/423/AmortizedAnalysisExplained_Fiebrink.pdf 但是我还没有完全理解这些概念。 那么,任何人都可以为我简化它吗?
这是我一直试图追查几个月的问题。 我有一个Java应用程序运行该进程的XML饲料并将结果存储在数据库中。 有间歇性的资源问题,很难追查。 背景:在生产箱(问题最明显的地方),我没有特别好的访问权限,并且无法运行Jprofiler。 那个盒子是一个64位四核,运行centos 5.2的8gb机器,tomcat6和java 1.6.0.11。 它从这些java-opts开始 JAVA_OPTS="-server -Xmx5g -Xms4g -Xss256k -XX:MaxPermSize=256m -XX:+PrintGCDetails – XX:+PrintGCTimeStamps -XX:+UseConcMarkSweepGC -XX:+PrintTenuringDistribution -XX:+UseParNewGC" 技术堆栈如下: Centos 64位5.2 Java 6u11 雄猫6 Spring / WebMVC 2.5 hibernate3 石英1.6.1 DBCP 1.2.1 Mysql 5.0.45 Ehcache 1.5.0 (当然还有一些其他的依赖项,特别是雅加达公共图书馆) 最近我可以重现这个问题是一个32位的内存要求较低的机器。 我有控制权。 我已经用JProfiler探测死了,并修复了许多性能问题(同步问题,预编译/cachingxpath查询,减less线程池,并消除不必要的hibernate预取,以及在处理过程中overzealous“高速caching预热”)。 在每种情况下,剖析者都将这些资源视为占用了大量资源,并且一旦变化进入,这些资源已经不再是主要资源。 问题: JVM似乎完全忽略了内存使用情况设置,填满了所有的内存并且没有响应。 对于面向客户的客户来说,这是一个问题,他们期望定期进行投票(5分钟和1分钟重试),同样也适用于我们的运营团队,他们经常被告知一个箱子没有响应,必须重新启动。 这个盒子上没有别的重要的东西了。 这个问题似乎是垃圾收集。 我们使用ConcurrentMarkSweep(如上所述)收集器,因为原始的STW收集器导致JDBC超时并且变得越来越慢。 这些日志显示,随着内存使用量的增加,开始抛出cms失败,并且回到原来的停止世界的收集器,然后收集器似乎不能正确收集。 然而,使用jprofiler运行,“运行GC”button似乎很好地清理内存,而不是显示增加的足迹,但由于我不能直接连接到生产框jprofiler,并解决经certificate的热点似乎没有工作我是留下了调整垃圾收集盲目的巫术。 我曾经尝试过: 分析和修复热点。 使用STW,并行和CMS垃圾收集器。 以最小/最大堆大小以1 / […]
任何人都可以告诉我有关用于mac平台的kcachegrind wingrind valgrind分析工具。 我不认为这些工作在Mac上,我也快速检查。
我的django应用程序在制作上变得非常慢。 这是由于一些复杂或无索引的查询而引起的。 有没有Django的方式来分析我的应用程序?
我需要find我的Android应用程序的瓶颈。 我可以使用哪些分析工具或技术?
使用Vim时,我已经有很多插件了 – 我已经收集了多年的插件。 我有点厌倦了Vim现在需要多长时间才能开始,所以我想介绍一下它的启动,看看我拥有的插件中有哪些是负责任的。 有什么办法来configurationVim的启动或脚本运行吗? 理想情况下,我想知道Vim花了多长时间加载每个Vim脚本。
在解决一些项目欧拉问题来学习Haskell(所以目前我是一个完全初学者),我来到问题13 。 我写了这个(天真的)解决scheme: –Get Number of Divisors of n numDivs :: Integer -> Integer numDivs n = toInteger $ length [ x | x<-[2.. ((n `quot` 2)+1)], n `rem` x == 0] + 2 –Generate a List of Triangular Values triaList :: [Integer] triaList = [foldr (+) 0 [1..n] | n <- [1..]] –The same […]
我正在阅读关于networking分析,并遇到GTM和GA。 GA似乎是由Google提供的一项服务,可以生成关于网站stream量的报告和统计数据。 根据我的理解,为了生成这个报告,我们需要在我们的结尾执行一些types的标记。 在GTM中,我们也需要在我们的网站上添加一些标签。 因此,如果GA和GTM都与标记有关,那么为什么我们有两种不同的产品呢?
我的内存使用量随着时间增加,重新启动Django对用户不友善。 我不确定如何去分析内存使用情况,但如何开始测量的一些提示将是有用的。 我有一种感觉,有一些简单的步骤可以产生巨大的收益。 确保“debugging”设置为“假”是一个明显的大问题。 任何人都可以推荐别人 在低stream量的网站上caching会有多大改进? 在这种情况下,我使用mod_python在Apache 2.x下运行。 我听说mod_wsgi有点精简,但是在这个阶段切换会非常棘手,除非我知道这个收益会很大。 编辑:感谢迄今为止的提示。 任何build议如何发现什么是使用内存? 有没有任何指导Python内存分析? 同样如上所述,有几件事情会使得切换到mod_wsgi变得非常棘手,所以我想对在这个方向前进之前所期待的收益有一些了解。 编辑:卡尔在这里发布了一个稍微更详细的回复,值得一读: Django部署:切割Apache的开销 编辑: Graham Dumpleton的文章是我在MPM和mod_wsgi相关的东西上find的最好的文章 。 我感到非常失望的是,没有人可以提供关于debugging应用程序本身的内存使用情况的任何信息。 最后编辑:那么我一直在讨论这个与Webfaction,看看他们是否可以协助重新编译Apache,这是他们的话: “我真的不认为你可以通过切换到MPM Worker + mod_wsgi设置获得很多好处,我估计你可以节省大约20MB,但可能不会超过这个数量。 所以! 这使我回到我原来的问题(我仍然不明智)。 人们如何去确定问题所在? 这是一个众所周知的格言,如果不经过testing就不会进行优化,以查看需要优化的地方,但是很less有关于测量Python内存使用情况的教程,而且对于Django都没有。 感谢大家的帮助,但我认为这个问题仍然是开放的! 另一个最后的编辑;-) 我在django-users列表上询问了这个问题,并得到了一些非常有帮助的回复 老实说最后的更新! 这刚刚发布。 可能是最好的解决scheme了: 用Pympler分析Django对象大小和内存使用情况
黑客的故事 这个date是12/02/10。 圣诞节前的日子正在stream逝,我几乎是一个Windows程序员打了一个主要的路障。 我一直在使用AQTime,我试过困,有光泽,很困,而且正如我们所说,VTune正在安装。 我试图使用VS2008分析器,这是积极的惩罚,以及往往不知情。 我使用了随机暂停技术。 我已经检查了一些调用树。 我发射了function痕迹。 但是令人痛心的事实是,我正在使用的应用程序有超过一百万行代码,可能还有另外一百万行第三方应用程序。 我需要更好的工具。 我读过其他主题。 我已经尝试了每个主题中列出的每个分析器。 只要有一些比这些垃圾和昂贵的select更好的东西,或者可笑的工作量几乎没有收获。 更复杂的是,我们的代码是高度线程化的,并且运行了一些Qt事件循环,其中一些是非常脆弱的,由于时间延迟,它们在沉重的仪器下崩溃。 不要问我为什么要运行多个事件循环。 没有人能告诉我。 Valgrind在windows环境下有更多的select吗? 有没有什么比我已经尝试过的那些破碎的工具更好? 是否有任何devise与Qt集成,可能与队列中的事件有用的显示? 我试过的工具的完整列表,以及那些在斜体中非常有用的工具: AQTime:相当好! 深度recursion有一些问题,但在这些情况下调用图是正确的,可以用来清除你可能有的任何混淆。 不是一个完美的工具,但值得尝试。 这可能适合你的需求,大部分时间对我来说确实够好。 debugging模式下的随机暂停攻击:没有足够的信息足够的时间。 一个好工具,但不是一个完整的解决scheme 平行工作室:核select。 突兀,怪异,疯狂的强大。 我认为你应该进行30天的评估,并确定它是否合适。 它也很酷。 AMD Codeanalyst:精彩,易于使用,非常容易崩溃,但我认为这是一个环境问题。 我build议尝试一下,因为它是免费的。 Luke Stackwalker:在小型项目上工作得很好,有点试图让它在我们的工作。 一些好的结果,但它绝对取代了我的个人任务的睡眠。 PurifyPlus:不支持Win-x64环境,最显眼的是Windows 7。 我在其他部门的一些同事发誓。 VS2008 Profiler:以所需的分辨率在function跟踪模式下产生100 +演出范围内的输出。 从正面来看,产生稳固的结果。 GProf:要求海湾合作委员会甚至适度有效。 VTune:VTune的W7支持犯罪分子。 否则优秀 个人识别码:我需要破解我自己的工具,所以这是不得已而为之的。 昏昏欲睡\ VerySleepy:有用的小型应用程序,但在这里失败。 EasyProfiler:不错,如果你不介意一些手动注入的代码来指示在哪里工具。 Valgrind:只有nix,但是当你在这个环境里时,它是非常好的。 OProfile:仅限Linux。 Proffy:他们拍野马。 我还没有尝试过的build议工具: XPerf: […]