标签: performance-testing

使用Siege和AB测试的准确度如何?

我很想知道我可以依靠Siege和AB的负载测试结果.我意识到他们不会考虑静态资产(图像,JS,CSS),但假设所有这些东西都是从CDN提供的,如果Siege/AB告诉我我可以满足200个并发用户,那么我有什么理由不应该这样做不相信吗?我没有考虑任何其他因素,例如运行测试的机器可能有任何限制吗?

apache performance performance-testing

21
推荐指数
1
解决办法
1万
查看次数

SpriteKit纹理图集与图像xcassets

我正在制作一个游戏,我注意到在某些场景中,我的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)

performance-testing ios sprite-kit texture-atlas xcasset

21
推荐指数
1
解决办法
4052
查看次数

在Jmeter中,如果我使用Rest API并从CSV文件中获取输入,那么HTTP Request Sampler的Body Data部分中的参数语法是什么?

我正在尝试使用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)

rest json jmeter load-testing performance-testing

21
推荐指数
1
解决办法
6万
查看次数

通过selenium进行浏览器性能测试

我们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

20
推荐指数
2
解决办法
6917
查看次数

字符串连接真的那么慢吗?

我目前正在研究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)

java string-concatenation performance-testing

19
推荐指数
2
解决办法
3726
查看次数

实体框架性能问题

我遇到了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

18
推荐指数
1
解决办法
5814
查看次数

如何自动为iOS应用程序创建性能报告?

对于我的一些iOS应用程序项目,我希望我的CI服务器能够报告以下属性:

  • 启动时间
  • 帧率

作为随时间变化的图表,以及"低水位线",如果测量结果不在特定标准内,则构建失败.我已经找到了一些我需要的东西.

  • CI服务器将是Jenkins.
  • 我可以使用Transporter Chief将构建的应用程序安装到iPad上.
  • 为了测量启动时间,我可以找到启动main()和离开之间的持续时间application:didFinishLaunchingWithOptions:.
  • 为了测量帧速率,我可以将一个CADisplayLink放入应用程序并对其duration属性进行采样.
  • 如果这些测试输出JMeter XML,那么Jenkins可以通过Performance插件显示输出.

我没有解决的问题是,我应该如何将这些测试嵌入到我的应用程序中并在iPad上启动?如上所述,我可以应用程序部署到iPad,但后来我不知道如何启动它来收集测试结果.我的单元测试在模拟器上运行 - 我不想在那里运行性能测试:-).

我想有一个解决方案,包括越狱iPad并通过SSH控制应用程序,如果可能的话,我宁愿不要沿着这条路走下去.如果你已经这样做并且可以解释它是如何工作的,我仍然希望听到它.

continuous-integration performance-testing ios

18
推荐指数
1
解决办法
1612
查看次数

如何在Visual Studio性能分析器中查看毫秒而不是%样本

我正在尝试使用Visual Studio性能分析器分析我的程序,但我是这个工具的新手.

如果我在分析仪中启动我的程序,我会得到一个报告,其中我看到一个函数所用的总分析时间的百分比.但是总时间可以在5秒到500秒之间变化,那么我如何才能看出我的优化是否有任何影响?

如果是以毫秒为单位,我不会遇到这个问题,但我找不到任何像"以毫秒为单位显示"或类似的功能.这样的功能存在吗?

在此输入图像描述

c# performance-testing visual-studio

18
推荐指数
1
解决办法
1万
查看次数

如何在1秒内发送4000多个请求?

我有一个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 …

java heap stack jmeter performance-testing

18
推荐指数
1
解决办法
2567
查看次数

标准C++ 11是否保证high_resolution_clock能够测量实时(非CPU周期)?

如已知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++ performance multithreading performance-testing c++11

17
推荐指数
2
解决办法
4441
查看次数