标签: benchmarking

ab负载测试

有人可以告诉我如何使用apache bench工具(ab)加载测试我的网站的过程吗?

我想知道以下内容:

该网站每分钟可处理多少人?

请引导我完成我应该运行的命令来解决这个问题.

我尝试了每个教程,他们很困惑.

apache benchmarking

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

哪个更快:多个单个INSERT还是一个多行INSERT?

我正在尝试优化将数据插入MySQL的代码的一部分.我应该链接INSERT来制作一个巨大的多行INSERT还是更快的多个单独的INSERT?

mysql benchmarking insert

174
推荐指数
7
解决办法
9万
查看次数

MATLAB OOP运行缓慢还是我做错了什么?

我与实验MATLAB OOP,因为一开始我模仿我的C++的记录器类,我把我所有的字符串辅助函数在String类,以为这将是巨大的,能够做的事情一样a + b,a == b,a.find( b )而不是strcat( a b ),strcmp( a, b ),检索的第一元件strfind( a, b ),等

问题:减速

我把上面的东西用上,并立即注意到一个急剧减速.我做错了(这当然有可能,因为我有相当有限的MATLAB经验),还是MATLAB的OOP只是引入了很多开销?

我的测试用例

这是我为字符串做的简单测试,基本上只是附加一个字符串并再次删除附加部分:

classdef String < handle
  ....
  properties
    stringobj = '';
  end
  function o = plus( o, b )
    o.stringobj = [ o.stringobj b ];
  end
  function n = Length( o )
    n = length( o.stringobj );
  end
  function o = SetLength( o, n ) …
Run Code Online (Sandbox Code Playgroud)

oop benchmarking matlab profiling matlab-class

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

为什么C ++的初始分配比C大得多?

当使用相同的代码时,只需更改编译器(从C编译器到C ++编译器)将更改分配的内存量。我不太确定为什么会这样,并且想进一步了解。到目前为止,我得到的最好的答复是“可能是I / O流”,它的描述性不是很强,这使我对C ++的“不用付钱,不用付钱”感到好奇。

我正在使用分别为7.0.1-8和8.3.0-6的Clang和GCC编译器。我的系统在最新的Debian 10(Buster)上运行。基准通过Valgrind Massif完成。

#include <stdio.h>

int main() {
    printf("Hello, world!\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

所使用的代码不会更改,但是无论我是以C还是C ++进行编译,它都会更改Valgrind基准测试的结果。但是,这些值在编译器之间保持一致。该程序的运行时分配(峰值)如下:

  • GCC(C):1,032字节(1 KB)
  • G ++(C ++):73,744字节(〜74 KB)
  • lang(C):1,032字节(1 KB)
  • Clang ++(C ++):73,744字节(〜74 KB)

为了进行编译,我使用以下命令:

clang -O3 -o c-clang ./main.c
gcc -O3 -o c-gcc ./main.c
Run Code Online (Sandbox Code Playgroud)
clang++ -O3 -o cpp-clang ./main.cpp
g++ -O3 -o cpp-gcc ./main.cpp
Run Code Online (Sandbox Code Playgroud)

对于Valgrind,我运行valgrind --tool=massif --massif-out-file=m_compiler_lang ./compiler-lang每种编译器和语言,然后ms_print显示峰。

我在这里做错什么了吗?

c c++ benchmarking

135
推荐指数
2
解决办法
7716
查看次数

如何在C++中使用clock()

我怎么叫clock()C++

例如,我想测试线性搜索在数组中查找给定元素所花费的时间.

c++ benchmarking clock

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

如何基准测试PHP脚本的效率

我想知道对PHP脚本进行基准测试的最佳方法是什么.无论是cron作业,还是网页或Web服务都无关紧要.

我知道我可以使用microtime但是它真的给了我PHP脚本的实时时间吗?

我想在PHP中测试和基准测试不同的函数,它们做同样的事情.例如,preg_matchvs strposdomdocumentvs preg_match或preg_replace vs str_replace`

网页示例:

<?php
// login.php

$start_time = microtime(TRUE);

session_start(); 
// do all my logic etc...

$end_time = microtime(TRUE);

echo $end_time - $start_time;
Run Code Online (Sandbox Code Playgroud)

这将输出:0.0146126717(一直变化 - 但这是我得到的最后一个).这意味着执行PHP脚本需要0.015左右.

有没有更好的办法?

php performance benchmarking microtime

120
推荐指数
5
解决办法
8万
查看次数

如何计算C++中代码片段的执行时间

我必须在几秒钟内计算C++代码片段的执行时间.它必须在Windows或Unix机器上运行.

我使用以下代码代码来执行此操作.(之前导入)

clock_t startTime = clock();
// some code here
// to compute its execution duration in runtime
cout << double( clock() - startTime ) / (double)CLOCKS_PER_SEC<< " seconds." << endl;
Run Code Online (Sandbox Code Playgroud)

但是对于小输入或短语句,例如a = a + 1,我得到"0秒"的结果.我认为它必须是0.0000001秒或类似的东西.

我记得System.nanoTime()在Java中,在这种情况下工作得很好.但是我无法从clock()C++的功能中获得相同的功能.

你有解决方案吗?

c++ benchmarking

118
推荐指数
5
解决办法
16万
查看次数

为什么Go这么慢(与Java相比)?

正如我们从2010年的计算机语言基准游戏中看到那样:

  • Go平均比C慢10倍
  • Go比Java慢3倍!

考虑到Go编译器生成用于执行的本机代码,这怎么可能呢?
Go的不成熟的编译器?或者Go语言存在一些内在问题?

编辑:
大多数答案否认Go语言的内在缓慢,声称问题存在于不成熟的编译器中.
因此,我已经做了一些自己的测试来计算Fibonacci数:迭代算法在Go(freebsd,6g)中运行,same速度与C相同(使用O3选项).沉闷的递归运行在Go中2 times比在C中慢(使用-O3选项;使用-O0 - 相同).但我没有看到基准游戏中的10倍跌幅.

java performance benchmarking go

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

基准测试(python与使用BLAS的c ++)和(numpy)

我想编写一个广泛使用BLAS和LAPACK线性代数功能的程序.由于性能是一个问题,我做了一些基准测试,并想知道,如果我采取的方法是合法的.

可以说,我有三位参赛者,他们希望用简单的矩阵矩阵乘法来测试他们的表现.参赛者是:

  1. Numpy,仅使用其功能dot.
  2. Python,通过共享对象调用BLAS功能.
  3. C++,通过共享对象调用BLAS功能.

脚本

我为不同的维度实现了矩阵 - 矩阵乘法i.i为5的增量和matricies运行5-500 m1m2设置了这样的:

m1 = numpy.random.rand(i,i).astype(numpy.float32)
m2 = numpy.random.rand(i,i).astype(numpy.float32)
Run Code Online (Sandbox Code Playgroud)

Numpy

使用的代码如下所示:

tNumpy = timeit.Timer("numpy.dot(m1, m2)", "import numpy; from __main__ import m1, m2")
rNumpy.append((i, tNumpy.repeat(20, 1)))
Run Code Online (Sandbox Code Playgroud)

2. Python,通过共享对象调用BLAS

有了这个功能

_blaslib = ctypes.cdll.LoadLibrary("libblas.so")
def Mul(m1, m2, i, r):

    no_trans = c_char("n")
    n = c_int(i)
    one = c_float(1.0)
    zero = c_float(0.0)

    _blaslib.sgemm_(byref(no_trans), byref(no_trans), byref(n), byref(n), byref(n), 
            byref(one), m1.ctypes.data_as(ctypes.c_void_p), byref(n), 
            m2.ctypes.data_as(ctypes.c_void_p), byref(n), byref(zero), 
            r.ctypes.data_as(ctypes.c_void_p), byref(n))
Run Code Online (Sandbox Code Playgroud)

测试代码如下所示:

r = …
Run Code Online (Sandbox Code Playgroud)

c++ python benchmarking numpy blas

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

Meteor在许多客户之间共享大量收藏时的效率如何?

想象一下以下情况:

  • 1,000个客户端连接到显示"Somestuff"集合内容的Meteor页面.

  • "Somestuff"是一个收藏1,000件物品的系列.

  • 有人在"Somestuff"集合中插入一个新项目

会发生什么:

  • Meteor.Collection客户端上的所有内容都将更新,即插入转发给所有客户端(这意味着向1,000个客户端发送一条插入消息)

服务器确定哪个客户端需要更新的CPU成本是多少?

是否准确只将插入的值转发给客户端,而不是整个列表?

这在现实生活中如何运作?是否有任何这种规模的基准或实验?

benchmarking meteor

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

标签 统计

benchmarking ×10

c++ ×4

performance ×2

apache ×1

blas ×1

c ×1

clock ×1

go ×1

insert ×1

java ×1

matlab ×1

matlab-class ×1

meteor ×1

microtime ×1

mysql ×1

numpy ×1

oop ×1

php ×1

profiling ×1

python ×1