我们编写了一个框架来测试Java应用程序的性能(现有的框架都没有,例如JMeter是合适的).该框架产生各种度量,例如每秒的平均/最小/最大事务.
我们希望每个Jenkins构建都显示这些指标,以便我们可以跟踪提交是否提高了性能.
我无法弄清楚如何做到这一点.
一个想法是修改我们的性能测试框架以输出HTML文件,然后以某种方式使Jenkins在构建结果页面上显示/链接到它.
任何建议都感激不尽.
我需要澄清一下"svn switch"的行为.我正在使用SVN版本1.6.5.
通过阅读手册,我对行为的理解是将保留本地更改.所以我希望在我的工作目录中仍然存在本地添加的文件svn switch.
但是,我和我的同事已经看到了交换机删除新文件的几个实例.不幸的是,我们无法弄清楚如何重现这一点.
是否有某些情况(功能或已知错误)svn switch删除本地添加的文件?
我从事性能关键的服务器端Java应用程序.
一旦系统启动,我预计不会创建长寿命对象 - 只有具有短生命的对象(最多10秒).因此,我希望调整JVM,以便在系统启动后老一代保持不变.
我想我已经成功但我不明白为什么(见下文).
这是我们的设置:
-Xmx3000m -Xms3000m -verbose:GC -XX:+ PrintGCTimeStamps -XX:+ PrintGCDetails -XX:+ UseConcMarkSweepGC -XX:SurvivorRatio = 5 -XX:TargetSurvivorRatio = 90 -XX:MaxTenuringThreshold = 31 -XX:+ PrintTenuringDistribution -XX:新尺寸= 1250m -XX:MaxNewSize = 1250m
我们正在使用Oracle的Java 1.6.
我对"PrintTenuringDistribution"标志的输出感到困惑.我看到这样的输出:
893.866: [GC 893.866: [ParNew
Desired survivor size 168512712 bytes, new threshold 16 (max 31)
- age 1: 13251072 bytes, 13251072 total
- age 2: 1135456 bytes, 14386528 total
- age 3: 59104 bytes, 14445632 total
- age 4: 467384 bytes, 14913016 total
- age 5: 68688 …Run Code Online (Sandbox Code Playgroud) 我的应用程序主要是Java,但对于某些计算,它使用C++库.我们的环境是在RedHat 3上运行的Java 1.6(很快就是RedHat 5).
我的问题是C++库不是线程安全的.为了解决这个问题,我们运行多个单线程"工作"流程,并让他们从中央工作管理器开始工作,也是用C++编写的.我们的Java应用程序通过第三方产品调用C++ Work Manager.
出于各种原因,我们希望重新编写C++ Work Manager和worker.我赞成用Java编写它们,在每个worker中使用JNI来调用C++库.
主要问题是如果C++库核心转储会发生什么.不幸的是,这很常见,我们需要能够看到我们的C++库中的哪一行导致了这个问题,例如通过检查GDB之类的回溯.
我的同事认为,分析核心转储是不可能的,因为像GDB这样的工具不了解Java生成的核心文件.
我希望他们错了,但在进一步推动我的想法之前我需要确定.
分析Java/JNI生成的核心转储的最佳方法是什么?
我致力于低延迟交易应用程序.我们希望增加写入文件的lof4j日志记录量,同时尽量减少对端到端处理时间的影响.
这样做的推荐方法是什么?我认为FileAppender.append是同步的,所以我们需要做一些比这更聪明的事情....