我知道我可以使用gprof来对我的代码进行基准测试.
但是,我有这个问题 - 我有一个智能指针,具有额外的间接级别(将其视为代理对象).
因此,我有这个额外的层,几乎影响所有功能,并带有缓存的螺丝.
有没有办法测量我的CPU因缓存未命中而浪费的时间?
谢谢!
我有一个C函数,它根据经过的时间计算4个正弦值.使用gprof,我认为这个函数使用100%(100.7%确切地说是lol)的CPU时间.
void
update_sines(void)
{
clock_gettime(CLOCK_MONOTONIC, &spec);
s = spec.tv_sec;
ms = spec.tv_nsec * 0.0000001;
etime = concatenate((long)s, ms);
int k;
for (k = 0; k < 799; ++k)
{
double A1 = 145 * sin((RAND1 * k + etime) * 0.00333) + RAND5; // Amplitude
double A2 = 100 * sin((RAND2 * k + etime) * 0.00333) + RAND4; // Amplitude
double A3 = 168 * sin((RAND3 * k + etime) * 0.00333) + RAND3; // Amplitude
double A4 = …
Run Code Online (Sandbox Code Playgroud) c ×1
c++ ×1
caching ×1
linux ×1
math ×1
optimization ×1
performance ×1
profiling ×1
trigonometry ×1