小编hli*_*itz的帖子

创建std :: thread会使主程序减慢50%

仅创建一个线程并加入它会使主线程的执行速度减慢50%.正如您在下面的示例中所看到的,线程不执行任何操作,但仍然会对性能产生重大影响.我认为它可能是一个功率/频率缩放相关的问题,所以我试图在创建线程后无法休眠.以下程序如果编译

g++ -std=c++11 -o out thread_test.cpp -pthread
Run Code Online (Sandbox Code Playgroud)

显示结果

Before thread() trial 0 time: 312024526 ignore -1593025974
Before thread() trial 1 time: 243018707 ignore -494037597
Before thread() trial 2 time: 242929293 ignore 177714863
Before thread() trial 3 time: 242935290 ignore 129069571
Before thread() trial 4 time: 243113945 ignore 840242475
Before thread() trial 5 time: 242824224 ignore -1635749271
Before thread() trial 6 time: 242809490 ignore -1256215542
Before thread() trial 7 time: 242910180 ignore -555222712
Before thread() trial 8 time: 235645414 ignore 537501443 …
Run Code Online (Sandbox Code Playgroud)

c++ performance multithreading

15
推荐指数
2
解决办法
1331
查看次数

Linux块设备驱动程序请求排序 - RaW?

我正在编写一个Linux块设备驱动程序,它通过注册的函数接收请求blk_init_queue().

我的硬件设备重新排序请求,因此为了避免写后读写冲突,需要等待write(lba x)发出之前完成read(lba x).

我的问题:请问在Linux块层跟踪原料的冲突,它会不会发出read(lba x)直到收到一个请求完成(通过__blk_end_request_all(req r))的前面write(lba x),或做我必须做的是,在我的司机?

c linux block-device

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

cmake:定义链接标志的顺序

我是 cmake 的新手。我需要链接一些额外的库,所以我使用

   CMAKE_EXE_LINKER_FLAGS:STRING=-lmymalloc -Wl,--wrap,malloc
Run Code Online (Sandbox Code Playgroud)

问题是 -lmymalloc 在生成的 Makefile 中被列为链接器标志的第一个参数,然后还有其他几个参数(这似乎是由 cmake 以另一种方式定义的)。我需要将它移到列出的标志的末尾,否则它将无法链接。我怎样才能做到这一点?

linker flags cmake

5
推荐指数
0
解决办法
955
查看次数

perf无法找到外部模块符号

运行时,perf它会找到我的程序的内核符号和符号,但它找不到外部模块符号.我已经编写了一个内核模块,我加载了insmod如何使用perf它来查找其符号?

我正在运行2.6.37.6内核(无法升级),我perf还不支持矮人选项,但我认为它是一个符号问题.我已经编译了一切-g -fno-omit-frame-pointer

symbols kernel-module perf

5
推荐指数
1
解决办法
1445
查看次数