我很想知道我可以依靠Siege和AB的负载测试结果.我意识到他们不会考虑静态资产(图像,JS,CSS),但假设所有这些东西都是从CDN提供的,如果Siege/AB告诉我我可以满足200个并发用户,那么我有什么理由不应该这样做不相信吗?我没有考虑任何其他因素,例如运行测试的机器可能有任何限制吗?
我正在制作一个游戏,我注意到在某些场景中,我的FPS不断下降到55-60FPS区域(使用纹理图集).这让我疯了,所以我决定把我所有的资产都放到Images.xcassets文件夹中,然后稳定60FPS.
我认为这是一个侥幸或我做错了什么,所以我决定开始一个新项目,并执行一些基准...
Apple的文档称使用纹理图集会提高应用程序性能.基本上,允许您的应用程序利用批量渲染.然而...
测试(https://github.com/JRam13/JSGlitch):
- (void)runTest
{
SKAction *spawn = [SKAction runBlock:^{
for (int i=0; i<10; i++) {
SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"Spaceship"];
sprite.xScale = 0.5;
sprite.yScale = 0.5;
sprite.position = CGPointMake(0, [self randomNumberBetweenMin:0 andMax:768]);
SKAction *action = [SKAction rotateByAngle:M_PI duration:1];
[sprite runAction:[SKAction repeatActionForever:action]];
SKAction *move = [SKAction moveByX:1200 y:0 duration:2];
[sprite runAction:move];
//notice I don't remove from parent (see test2 below)
[self addChild:sprite];
}
}];
SKAction *wait = [SKAction waitForDuration:.1];
SKAction *sequence = [SKAction sequence:@[spawn,wait]];
SKAction *repeat …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用REST API在Jmeter中同时创建10个用户.测试数据即输入来自CSV文件(用户的详细信息,如用户名,姓氏,手机)
为此我添加了一个线程组,用户定义变量,HTTP标头管理器,HTTP请求采样器(成功登录到Web应用程序),JSON PATH EXTRACTOR(提取auth标记,将在添加用户时使用)
为了添加用户,我使用了一个"循环控制器" - "HTTP请求采样器" - HTTP标头管理器,CSV数据集配置.
并跟踪结果,查看结果树和汇总报告.
请告诉我在HTTP请求采样器的"正文数据"部分中传递的参数的语法是什么,以便它可以从csv文件中读取值.
下面是我现在用来添加单个用户的语法.
{
"phoneNo": "9998885551",
"lastName": "john25",
"email": "azp25@gmail.com",
"firstName": "ricky25",
"mobileNo": "9820420420"
}
Run Code Online (Sandbox Code Playgroud) 我们protractor用于测试内部AngularJS应用程序.
除了功能测试之外,我们protractor-perf还会检查性能回归,其帮助基于nodejs browser-perf库.因为,"性能是一种功能".
随着protractor-perf我们可以测量并同时使浏览器的行为,主张不同的性能特点,例如:
browser.get('http://www.angularjs.org');
perf.start(); // Start measuring the metrics
element(by.model('todoText')).sendKeys('write a protractor test');
element(by.css('[value="add"]')).click();
perf.stop(); // Stop measuring the metrics
if (perf.isEnabled) { // Is perf measuring enabled ?
// Check for perf regressions, just like you check for functional regressions
expect(perf.getStats('meanFrameTime')).toBeLessThan(60);
};
Run Code Online (Sandbox Code Playgroud)
现在,对于另一个内部应用程序,我们有一组用Python编写的基于selenium的测试.
是否可以使用selenium-python检查性能回归,还是应该使用protractor能够编写浏览器性能测试来重写测试?
python selenium performance-testing selenium-webdriver protractor
我目前正在研究String concat选项以及它们对整体性能的惩罚.我的测试用例创造了令我心烦意乱的结果,我不确定我是否会忽略某些东西.
这是交易:"something"+"somethingElse"在java中执行(在编译时)StringBuilder每次完成时都会创建一个新的.
对于我的测试用例,我正在从我的HDD加载一个包含1661行示例数据的文件(经典的"Lorem Ipsum").这个问题不是关于I/O性能,而是关于不同字符串concat方法的性能.
public class InefficientStringConcat {
public static void main(String[] agrs) throws Exception{
// Get a file with example data:
System.out.println("Starting benchmark");
// Read an measure:
for (int i = 0; i < 10; i++){
BufferedReader in = new BufferedReader(
new InputStreamReader(new FileInputStream(new File("data.txt")))
);
long start = System.currentTimeMillis();
// Un-comment method to test:
//inefficientRead(in);
//betterRead(in);
long end = System.currentTimeMillis();
System.out.println("Took "+(end-start)+"ms");
in.close();
}
}
public static String betterRead(BufferedReader …Run Code Online (Sandbox Code Playgroud) 我遇到了Entity Framework的一个有趣的性能问题.我正在使用Code First.
这是我的实体的结构:
一本书可以有很多评论.评论与单本书相关联.评论可以有一个或多个评论.评论与一篇评论相关联.
public class Book
{
public int BookId { get; set; }
// ...
public ICollection<Review> Reviews { get; set; }
}
public class Review
{
public int ReviewId { get; set; }
public int BookId { get; set; }
public Book Book { get; set; }
public ICollection<Comment> Comments { get; set; }
}
public class Comment
{
public int CommentId { get; set; }
public int ReviewId { get; set; }
public Review Review …Run Code Online (Sandbox Code Playgroud) .net c# entity-framework performance-testing entity-framework-4.1
对于我的一些iOS应用程序项目,我希望我的CI服务器能够报告以下属性:
作为随时间变化的图表,以及"低水位线",如果测量结果不在特定标准内,则构建失败.我已经找到了一些我需要的东西.
main()和离开之间的持续时间application:didFinishLaunchingWithOptions:.CADisplayLink放入应用程序并对其duration属性进行采样.我没有解决的问题是,我应该如何将这些测试嵌入到我的应用程序中并在iPad上启动?如上所述,我可以将应用程序部署到iPad,但后来我不知道如何启动它来收集测试结果.我的单元测试在模拟器上运行 - 我不想在那里运行性能测试:-).
我想有一个解决方案,包括越狱iPad并通过SSH控制应用程序,如果可能的话,我宁愿不要沿着这条路走下去.如果你已经这样做并且可以解释它是如何工作的,我仍然希望听到它.
我正在尝试使用Visual Studio性能分析器分析我的程序,但我是这个工具的新手.
如果我在分析仪中启动我的程序,我会得到一个报告,其中我看到一个函数所用的总分析时间的百分比.但是总时间可以在5秒到500秒之间变化,那么我如何才能看出我的优化是否有任何影响?
如果是以毫秒为单位,我不会遇到这个问题,但我找不到任何像"以毫秒为单位显示"或类似的功能.这样的功能存在吗?

我有一个HTTP GET request.我需要4000在1秒内将请求发送到应用程序服务器超过一次.
我正在使用JMeter发送这些请求.每次使用嗅探工具(Wireshark)进行每次测试时,我都会采用空灵痕迹.
我试图从一台机器,多台机器(并行)甚至分布式模式实现这一目标.
实际上,JMeter结果不是我关注的问题.此测试的关注点是4000在嗅探器工具上看到请求在一秒内到达服务器.
在使用以下JMeter测试计划时,我发现在ethereal trace中几乎有2500请求1 sec.
Number of Threads= 4000
Ramp-Up Periods = 0 (Though it is depricated)
Loop count= 1
Run Code Online (Sandbox Code Playgroud)
当我使用线程数时2500,我几乎2200 request在空灵轨迹中一秒钟就击中了服务器.
服务器对该请求的响应不是我关注的问题.我只是想确保4000发送的请求JMeter在一秒内到达应用程序服务器.
案例1:(4000个主题)
Number of Threads= 4000
Ramp-Up Periods = 0
Loop count= 1
Run Code Online (Sandbox Code Playgroud)
案例1的输出:
JMeter(查看表中的结果):启动4000个请求2.225秒.
虚拟跟踪:4000个请求命中服务器4.12秒.
案例2:(3000个主题)
JMeter(查看表中的结果):1.83秒启动3000个请求.
虚拟跟踪:3000次请求命中服务器1.57秒.
案例3:(2500个主题)
JMeter(查看表中的结果):1.36秒开始2500个请求.
虚拟跟踪:2500个请求命中服务器2.37秒.
案例4:(2000线程)
JMeter(查看表中的结果):启动2000个请求的0.938秒.
Ethereal trace …
如已知clock()可能显示小于或大于实时值 - 两种情况都显示在以下示例1和2中.
为了在C++ 11中高精度测量时间,我们可以使用:
std::chrono::high_resolution_clock::now(); - 保证高精度std::chrono::steady_clock::now(); - 保证实时测量clock(); - 保证高精度,但测量CPU周期而不是时间time(&t_start); - 不是高精度,而是实时测量1-例如:http://ideone.com/SudWTM
#include <stdio.h>
#include <time.h>
#include <thread>
#include <iostream>
#include <chrono>
int main(void) {
std::cout << "sleep(3) took: \n\n";
clock_t c_start, c_end;
time_t t_start, t_end;
std::chrono::high_resolution_clock::time_point h_start, h_end;
std::chrono::steady_clock::time_point steady_start, steady_end;
time(&t_start); // less precise than clock() but always get the real actual time
c_start = clock(); // clock() get only CPU-time, it can be more than …Run Code Online (Sandbox Code Playgroud) c# ×2
ios ×2
java ×2
jmeter ×2
performance ×2
.net ×1
apache ×1
c++ ×1
c++11 ×1
heap ×1
json ×1
load-testing ×1
protractor ×1
python ×1
rest ×1
selenium ×1
sprite-kit ×1
stack ×1
xcasset ×1