两年多来,我一直致力于"大爆炸"重写.在应用程序取代其超级百万赚钱的旗舰网络应用程序之前,管理层一直无情地忽视并贬低我的呼吁,即为性能测量,容量规划和优化分配时间/资源.
最后,他们同意这样做(我们成功地通过提出现在正在生产的并行beta测试服务器并且将成为测试的目标来防止他们大肆宣传).我不喜欢他们等到最后优先考虑这个,但是迟到总比没有好.
每个人都有什么建议来处理将来这样的情况?教育经理/客户了解这些测试需求的最佳方法是什么?
我已经向他们展示了微软在CodePlex上的性能指南,并在开篇页面中提供了经验丰富的专业人士的严厉警告.我还给他们看过"释放它!"这本书.以及作者给出的关于"凌晨3点的电话"的指导.这最终使他们不情愿地说服了,但事实是,这应该优先考虑开发,并在最终完成系统测试之前的开发过程中进行部分测量.
许多经理和老派工程师只编写了ASP,但从未使用.NET,他们习惯于自己编写所有内容,并且不了解新.NET应用程序中缓存,调优和健康监控的所有选项.
谢谢
Scala测试库是否有助于性能测试?在ScalaTest或规格中找不到任何相关内容.
一直在试验Jmeter,我想知道最好的方法:
20个用户登录到应用程序,超过20分钟,并执行一些操作另外20分钟,然后在20分钟内注销.即有200个用户登录,然后一旦所有登录,开始20分钟计时器.一旦20分钟结束,开始记录最早登录的人.
我意识到这可能或可能不是一个真实的测试场景,但我想看看它是否可行.
目前我有一个测试计划,用户登录,执行一些操作,然后注销.我看不出我如何能够提升和减速.
我使用的是g ++ 4.7,因为它是g ++的最新版本之一,它是第一个增加真正支持的版本c++11.
出于测试目的,我正在考虑采用代码 从这里.
我将此源命名为lambda.cpp,并使用以下命令编译它:
g++-4.6 -std=c++0x lambda.cpp -o lambda46
g++-4.7 -std=c++11 lambda.cpp -o lambda47
Run Code Online (Sandbox Code Playgroud)
当涉及到lambda性能时,lambda47可执行文件比lambda46慢约半秒,令人惊讶的是迭代器部分通常比lambda46快.
我也试过用
g++-4.7 -std=c++0x lambda.cpp -o lambda47-0x
Run Code Online (Sandbox Code Playgroud)
但基本上g ++ - 4.6总是生成比g ++ - 4.7更快的代码.
这是一种常见的行为,还是一个错误?
有一个编译器可以用C++ 11更好地执行?
g ++ - 4.7它已经编译好了
配置为:../ src/configure -v --with-pkgversion ='Ubuntu/Linaro 4.7.2-4precise1'--with-bugurl = file:///usr/share/doc/gcc-4.7/README.错误--enable-languages = c,c ++,go,fortran,objc,obj-c ++ --prefix =/usr --program-suffix = -4.7 --enable-shared --enable-linker-build-id - with-system-zlib --libexecdir =/usr/lib --without-included-gettext --enable-threads = posix --with-gxx-include-dir =/usr/include/c ++/4.7 --libdir =/usr/lib --enable-nls --with-sysroot =/--enable -clocale = gnu …
我试图重现这里提供的结果每位程序员应该了解的内存,特别是下图所示的结果(文中的第20-21页)

基本上,对于不同的工作尺寸,每个元素的周期图,图中的突然上升位于工作集大小超过高速缓存大小的点.
为了实现这一点,我在这里编写了这段代码.我看到所有数据都是从内存中提取的(通过每次使用clflush刷新缓存),所有数据大小的性能都是相同的(如预期的那样),但是随着缓存的运行,我看到完全相反的趋势
Working Set: 16 Kb took 72.62 ticks per access
Working Set: 32 Kb took 46.31 ticks per access
Working Set: 64 Kb took 28.19 ticks per access
Working Set: 128 Kb took 23.70 ticks per access
Working Set: 256 Kb took 20.92 ticks per access
Working Set: 512 Kb took 35.07 ticks per access
Working Set: 1024 Kb took 24.59 ticks per access
Working Set: 2048 Kb took 24.44 ticks per …Run Code Online (Sandbox Code Playgroud) 对象的保留大小不等于其引用的所有对象的保留大小。
这是正在发生的事情:
A >> B
我正在对服务进行一些性能/负载测试.想象一下测试功能如下:
bytesPerSecond = test(filesize: 10MB, concurrency: 5)
Run Code Online (Sandbox Code Playgroud)
使用这个,我将填充不同大小和并发级别的结果表.还有其他变量,但你明白了.
测试功能可以提升concurrency请求并跟踪吞吐量.这个速率从零开始,然后是尖峰和下降,直到它最终稳定在"真实"值上.
然而,这种稳定性可能需要一段时间才能发生,并且有许多输入组合要进行评估.
test功能如何决定何时执行足够的样本?通过足够的,我想我的意思是它的结果不会改变超出一定的余量,如果继续进行试验.
我记得刚才读过一篇关于这篇文章的文章(来自其中一位jsperf作者)讨论了一个强大的方法,但我再也找不到这篇文章了.
一种简单的方法是计算滑动值窗口的标准偏差.有更好的方法吗?
public class Test {
public static void main(String[] args) {
int x = 150_000;
long start = System.currentTimeMillis();
for(int i = 0; i < x; i++) {
f1(i);
}
long end = System.currentTimeMillis();
System.out.println((end - start) / 1000.0);
}
private static long f1(int n) {
long x = 1;
for(int i = 0; i < n; i++) {
x = x + x;
}
return x;
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么x设置为150_000或者4_000_000甚至2_000_000_000不改变这个循环的执行时间?
我正在研究Django应用程序的不同测试类型。我知道如何在Django中进行功能和单元测试,以及如何应用不同的方法,但是现在我面临着新的挑战,我需要知道如何做:
我知道它们之间的区别,但是我不知道哪种方法最好,哪种方法最好,或者只是在哪里可以获取一些文档。
所以我的问题是,如何开始在Django应用中进行这些类型的测试,或者从哪里可以得到一些好的文档?
谢谢
我正在尝试在Linux 上的专用核心上运行程序.(我知道Jailhouse是一个很好的方法,但我必须使用现成的Linux.:-()
其他进程(例如中断处理程序,内核线程,服务进程)也可能偶尔在专用核心上运行.我想尽可能多地禁用这样的进程.为此,我需要首先确定可能在专用内核上运行的进程列表.
我的问题是:
是否有任何现有工具可用于跟踪在一段时间间隔内在特定核心上运行的PID或进程列表?
非常感谢您在这个问题上的时间和帮助!