标签: performance-testing

尝试抓住加速我的代码?

我写了一些代码来测试try-catch的影响,但看到了一些令人惊讶的结果.

static void Main(string[] args)
{
    Thread.CurrentThread.Priority = ThreadPriority.Highest;
    Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.RealTime;

    long start = 0, stop = 0, elapsed = 0;
    double avg = 0.0;

    long temp = Fibo(1);

    for (int i = 1; i < 100000000; i++)
    {
        start = Stopwatch.GetTimestamp();
        temp = Fibo(100);
        stop = Stopwatch.GetTimestamp();

        elapsed = stop - start;
        avg = avg + ((double)elapsed - avg) / i;
    }

    Console.WriteLine("Elapsed: " + avg);
    Console.ReadKey();
}

static long Fibo(int n)
{
    long n1 = 0, n2 …
Run Code Online (Sandbox Code Playgroud)

.net c# clr try-catch performance-testing

1463
推荐指数
5
解决办法
10万
查看次数

为什么TensorFlow 2比TensorFlow 1慢得多?

许多用户都将其作为切换到Pytorch的原因,但是我还没有找到牺牲/最渴望的实用质量,速度和执行力的理由/解释。

以下是代码基准测试性能,即TF1与TF2的对比-TF1的运行速度提高了47%至276%

我的问题是:在图形或硬件级别上,什么导致如此显着的下降?


寻找详细的答案-已经熟悉广泛的概念。相关的Git

规格:CUDA 10.0.130,cuDNN 7.4.2,Python 3.7.4,Windows 10,GTX 1070


基准测试结果


UPDATE:禁用每下面的代码不会急于执行没有帮助。但是,该行为是不一致的:有时以图形方式运行有很大帮助,而其他时候其运行速度相对于Eager

由于TF开发人员没有出现在任何地方,因此我将自己进行调查-可以跟踪相关的Github问题的进展。

更新2:分享大量实验结果,并附有解释;应该在今天完成。


基准代码

# use tensorflow.keras... to benchmark tf.keras; used GPU for all above benchmarks
from keras.layers import Input, Dense, LSTM, Bidirectional, Conv1D
from keras.layers import Flatten, Dropout
from keras.models import Model
from keras.optimizers import Adam
import keras.backend as K
import numpy as np
from time import time

batch_shape = (32, 400, 16) …
Run Code Online (Sandbox Code Playgroud)

python performance-testing keras tensorflow tensorflow2.0

94
推荐指数
2
解决办法
4140
查看次数

如何在Mac上安装jmeter?

我们想用jmeter.

我已经按照http://jmeter.apache.org/usermanual/get-started.html用户手册中的说明下载了生产版本.

但是我如何开始并安装软件?

我不知道java,我找不到任何关于我应该如何处理下载的说明.

我在Mac上.

如何将产品安装为可用程序?

testing jmeter load-testing performance-testing

91
推荐指数
6
解决办法
12万
查看次数

为什么这个函数调用的执行时间会发生变化?

前言

此问题似乎只影响 Chrome/V8,在 Firefox 或其他浏览器中可能无法重现。总之,如果在其他任何地方使用新回调调用函数,则函数回调的执行时间会增加一个数量级或更多。

简化的概念验证

test(callback)任意多次调用都按预期工作,但是一旦调用test(differentCallback)test无论提供什么回调,函数的执行时间都会显着增加(即,另一个调用test(callback)也会受到影响)。

此示例已更新为使用参数,以免优化为空循环。回调参数ab相加并添加到total记录的 中。

function test(callback) {
    let start = performance.now(),
        total = 0;

    // add callback result to total
    for (let i = 0; i < 1e6; i++)
        total += callback(i, i + 1);

    console.log(`took ${(performance.now() - start).toFixed(2)}ms | total: ${total}`);
}

let callback1 = (a, b) => a + b,
    callback2 = (a, b) => a + b;

console.log('FIRST …
Run Code Online (Sandbox Code Playgroud)

javascript v8 performance-testing chromium

60
推荐指数
2
解决办法
3133
查看次数

实体框架与存储过程 - 性能测量

我正在尝试确定实体框架比存储过程慢多少.我希望说服我的老板让我们使用Entity Framework来简化开发.

问题是我进行了性能测试,看起来EF比Stored Procs慢大约7倍.我觉得这很难相信,我想知道我是否遗漏了什么.这是一个确凿的测试吗?有什么办法可以提高EF测试的性能吗?

        var queries = 10000;

        //  Stored Proc Test
        Stopwatch spStopwatch = new Stopwatch();
        spStopwatch.Start();
        for (int i = 0; i < queries; i++ )
        {
            using (var sqlConn = new SlxDbConnection().Connection)
            {
                var cmd = new SqlCommand("uspSearchPerformanceTest", sqlConn) { CommandType = CommandType.StoredProcedure };

                cmd.Parameters.AddWithValue("@searchText", "gstrader");
                sqlConn.Open();
                SqlDataReader dr = cmd.ExecuteReader();

                List<User> users = new List<User>();
                while (dr.Read())
                {
                    users.Add(new User
                    {
                        IsAnonymous = Convert.ToBoolean(dr["IsAnonymous"]),
                        LastActivityDate = Convert.ToDateTime(dr["LastActivityDate"]),
                        LoweredUserName = dr["LoweredUserName"].ToString(),
                        MobileAlias = dr["MobileAlias"].ToString(),
                        UserId = new …
Run Code Online (Sandbox Code Playgroud)

stored-procedures entity-framework performance-testing database-performance

58
推荐指数
4
解决办法
5万
查看次数

使用JMeter进行测试:如何每秒运行N个请求

我需要测试我们的系统是否每秒可以执行N个请求.从技术上讲,它是对一个API的2个请求,对另一个API的2个请求,以及对第三个请求的6个请求.但重要的是它们应该同时发生 - 每秒10个请求.因此,在JMeter中我创建了三个线程组,首先定义了线程数1,并且加速时间为0.第二个线程组是相同的,第三个线程组定义了线程数6和加速时间0.但是这并不能保证它每秒运行它们 如何模仿它?我如何看待结果 - 如果它能够执行或不执行?

谢谢!

jmeter stress-testing load-testing performance-testing

52
推荐指数
3
解决办法
8万
查看次数

Java性能测试

我想在Java应用程序上进行一些计时测试.这就是我目前正在做的事情:

long startTime = System.currentTimeMillis();
doSomething();
long finishTime = System.currentTimeMillis();
System.out.println("That took: " + (finishTime - startTime) + " ms");
Run Code Online (Sandbox Code Playgroud)

像这样的性能测试有什么"错误"吗?什么是更好的方法?

重复:秒表基准可以接受吗?

java performance performance-testing

49
推荐指数
2
解决办法
6万
查看次数

JUnit是编写性能测试的正确工具吗?

在上周,我创建了两个课程,我的团队对他们的表现表达了一些担忧.为了评估我的代码,我编写了一些简单的JUnit测试,这些测试通过构建丰富的测试数据集来运行这些类,然后通过相关方法为数千次迭代提供数据.我记录了每次迭代的运行时间,然后使用循环和记录了高,低和平均时间System.nanoTime().最后我让JUnit断言高和平均时间都在可接受的范围内.这种测试方法让我的团队对此代码充满信心.

JUnit是以这种方式测试性能的合适工具吗?是否有更好的工具来测试单元(方法和类)级别的性能?

java junit performance-testing

41
推荐指数
3
解决办法
3万
查看次数

将IEnumerable <char>转换为字符串的最佳方法?

为什么不能使用流利的语言string

例如:

var x = "asdf1234";
var y = new string(x.TakeWhile(char.IsLetter).ToArray());
Run Code Online (Sandbox Code Playgroud)

是不是有更好的转换IEnumerable<char>方式string

这是我做的一个测试:

class Program
{
  static string input = "asdf1234";
  static void Main()
  {
    Console.WriteLine("1000 times:");
    RunTest(1000, input);
    Console.WriteLine("10000 times:");
    RunTest(10000,input);
    Console.WriteLine("100000 times:");
    RunTest(100000, input);
    Console.WriteLine("100000 times:");
    RunTest(100000, "ffff57467");


    Console.ReadKey();

  }

  static void RunTest( int times, string input)
  {

    Stopwatch sw = new Stopwatch();

    sw.Start();
    for (int i = 0; i < times; i++)
    {
      string output = new string(input.TakeWhile(char.IsLetter).ToArray());
    }
    sw.Stop();
    var …
Run Code Online (Sandbox Code Playgroud)

.net regex performance performance-testing

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

如何使用Scala将1亿条记录加载到MongoDB中进行性能测试?

我有一个用Scala编写的小脚本,用于加载具有100,000,000个样本记录的MongoDB实例.我们的想法是让数据库全部加载,然后进行一些性能测试(并在必要时调整/重新加载).

问题是每100,000个记录的加载时间相当线性增加.在我的加载过程开始时,只需4秒即可加载这些记录.现在,在接近6,000,000条记录中,加载相同数量(100,000)需要300到400秒!那要慢两个数量级!查询仍然很快,但按照这个速度,我永远无法加载我想要的数据量.

如果我用我的所有记录(全部100,000,000!)编写一个文件,然后使用mongoimport导入整个文件,这会更快吗?或者我的期望是否过高而且我使用的数据库超出了应该处理的范围?

有什么想法吗?谢谢!

这是我的脚本:

import java.util.Date

import com.mongodb.casbah.Imports._
import com.mongodb.casbah.commons.MongoDBObject

object MongoPopulateTest {
  val ONE_HUNDRED_THOUSAND = 100000
  val ONE_MILLION          = ONE_HUNDRED_THOUSAND * 10

  val random     = new scala.util.Random(12345)
  val connection = MongoConnection()
  val db         = connection("mongoVolumeTest")
  val collection = db("testData")

  val INDEX_KEYS = List("A", "G", "E", "F")

  def main(args: Array[String]) {
    populateCoacs(ONE_MILLION * 100)
  }

  def populateCoacs(count: Int) {
    println("Creating indexes: " + INDEX_KEYS.mkString(", "))
    INDEX_KEYS.map(key => collection.ensureIndex(MongoDBObject(key -> 1)))

    println("Adding " + count + " records …
Run Code Online (Sandbox Code Playgroud)

testing scala performance-testing mongodb nosql

38
推荐指数
2
解决办法
2万
查看次数