我正在尝试使用Ruby 1.9和Rails 2.3.5运行一个空白的默认性能测试,但我无法让它工作!我在这里失踪了什么?
rails testapp
cd testapp
script/generate scaffold User name:string
rake db:migrate
rake test:benchmark
Run Code Online (Sandbox Code Playgroud)
-
/usr/local/bin/ruby19 -I"lib:test" "/usr/local/lib/ruby19/gems/1.9.1/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "test/performance/browsing_test.rb" -- --benchmark
Loaded suite /usr/local/lib/ruby19/gems/1.9.1/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
/usr/local/lib/ruby19/gems/1.9.1/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:105:in `rescue in const_missing': uninitialized constant BrowsingTest::STARTED (NameError)
from /usr/local/lib/ruby19/gems/1.9.1/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:94:in `const_missing'
from /usr/local/lib/ruby19/gems/1.9.1/gems/activesupport-2.3.5/lib/active_support/testing/performance.rb:38:in `run'
from /usr/local/lib/ruby19/1.9.1/minitest/unit.rb:415:in `block (2 levels) in run_test_suites'
from /usr/local/lib/ruby19/1.9.1/minitest/unit.rb:409:in `each'
from /usr/local/lib/ruby19/1.9.1/minitest/unit.rb:409:in `block in run_test_suites'
from /usr/local/lib/ruby19/1.9.1/minitest/unit.rb:408:in `each'
from /usr/local/lib/ruby19/1.9.1/minitest/unit.rb:408:in `run_test_suites'
from /usr/local/lib/ruby19/1.9.1/minitest/unit.rb:388:in `run'
from /usr/local/lib/ruby19/1.9.1/minitest/unit.rb:329:in `block in autorun'
rake aborted!
Command failed with status (1): [/usr/local/bin/ruby19 -I"lib:test" "/usr/l...]
Run Code Online (Sandbox Code Playgroud) 我正在努力寻求解决方案.
我做了什么:
我已经使用HTTP代理服务器记录了导航页面生成的每个文件.添加线程组下的所有文件我运行了测试计划,一次没有缓存,一次没有缓存.
我得到的是:
但是我使用Firebug获取该页面的响应时间比使用Jmeter [缓存以及非缓存]的时间少30-40秒.
注意:该页面包含ajax.
题:
谢谢.
似乎每次我进行性能测试时,在时间稳定之前的前几次迭代中始终存在"减速"时间.
这是性能测试代码(在这种情况下,我测试了Lambda和LINQ之间的区别):
using System;
using System.Collections.Generic;
using System.Diagnostics;
namespace Sandbox
{
public class Program
{
private static long sum = 0;
private static int count = 0;
public class Item
{
public string name;
public int id;
}
public static void Main(string[] args)
{
// START TESTING PARAMETERS
List<Item> items = new List<Item>();
for (int i = 0; i < 1000; i++)
{
items.Add(new Item
{
id = i,
name = "name_" + i.ToString()
});
}
// END TESTING PARAMETERS …Run Code Online (Sandbox Code Playgroud) 如何进行localhost url的性能测试只能访问我的电脑?
我可以使用jmeter进行性能测试,如谷歌等实时网站,但jmeter无法检测本地网址.应用程序的URL-192.168.121.20:8001
2.视图结果树监听器的输出 - 所有失败的http警报HTTP请求采样器的屏幕截图说明 - 仅添加服务器名称,即URL -
在Gatling 2.1中,我像这样保存一堆ID:
.findAll.saveAs("ids"))
Run Code Online (Sandbox Code Playgroud)
这将添加会话中的ID列表:
ids -> List(0, 1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
我想将此列表作为常规的Scala变量。
在使用String的情况下,可以正常工作:
.exec(session => {
val mystring= session("SomeString").as[String]
session
})
Run Code Online (Sandbox Code Playgroud)
如何使此工作适用于列表?
我知道清空try... catch程序不是很好的做法。但是,我想知道为什么空白try... catch会影响JavaScript的性能?
以下代码段:
function test() {
var start = new Date();
for (var i = 0; i < 100000000; i++){
var r = i % 2;
}
console.log(new Date() - start);
try {
} catch (ex) {
}
}
Run Code Online (Sandbox Code Playgroud)
运行时间结果709低于Chrome
但是,如果没有空白try... catch,
function test3() {
var start = new Date();
for (var i = 0; i < 100000000; i++){
var r = i % 2;
}
console.log(new Date() - start); …Run Code Online (Sandbox Code Playgroud) javascript performance google-chrome try-catch performance-testing
我想在一段时间内捕获我的应用程序进程的CPU,内存,线程数,以分析是否有任何进程使用更多的CPU,内存消耗.我们怎样才能实现这一目标.
我从Google发布的速成课程开始教我的自我Python.其中一个实践问题是编写一个函数,它接受2个排序列表,将它们合并在一起,并返回一个排序列表.最明显的解决方案是:
def linear_merge(list1, list2):
list = list1 + list2
list.sort()
return list
Run Code Online (Sandbox Code Playgroud)
显然上面不是很有效,或者我认为,因为在后端,sort函数必须再次在整个输出列表上运行.该问题要求实现此功能的有效方法,可能是它可以在巨大的列表上很好地工作.我的代码类似于Google的答案,但我稍微调整了一下以使其更快一些:
def linear_merge_goog(list1, list2):
result = []
while len(list1) and len(list2):
if list1[-1] > list2[-1]:
result.append(list1.pop())
else:
result.append(list2.pop())
result.extend(list1)
result.extend(list2)
return result[::-1]
Run Code Online (Sandbox Code Playgroud)
原始的Google代码从数组的前面弹出,但即使他们注意到从阵列的背面弹出而不是反转它更有效.
我尝试使用大量2000万个入口数组运行这两个函数,并且简单的愚蠢组合和排序功能每次都以3倍+的余量出现.对于什么应该是更有效的方法,低于1秒对超过3秒.
有任何想法吗?我错过了什么.是否与我的代码被解释时编译的内置排序函数有关(听起来不太可能).还有其他想法吗?
有谁能告诉我在性能测试方面IP欺骗的用途是什么?
这是将数组的值恢复为简单值true或false值的最佳方法。
作为jsperf是给我,我很困惑非常比谷歌浏览器控制台的NodeJS,或任何其他JS引擎带给我不同的结果。(此处为jsperf片段)
这是代码段,您可以看到(可以在此处运行)some比使用foreach循环快100倍
var array = [];
var i = 0;
var flag = false;
while (i< 100000) {
array.push(Math.random()*10000);
i++;
}
console.time('forEach');
array.forEach((item) => {
if (!flag && item > 10000/2) {
flag = true;
return;
}
return false
});
console.timeEnd('forEach');
console.log(flag);
flag = false;
console.time('some');
flag = array.some((item) => {
if (item > 10000/2) {
return true;
}
return false
});
console.timeEnd('some');
console.log(flag);Run Code Online (Sandbox Code Playgroud)
问题是,为什么JSPERF给出的结果与chrome的控制台,nodejs或任何其他JS引擎不同?
编辑:正如我对下面问题的回答所指出的那样,此行为是有问题的,因为 …
jmeter ×4
performance ×4
arrays ×2
javascript ×2
load-testing ×2
c# ×1
gatling ×1
ip ×1
jsperf ×1
list ×1
loadrunner ×1
python ×1
ruby ×1
scala ×1
sorting ×1
try-catch ×1