小编use*_*552的帖子

使用预取优化

我想了解如何使用PREFETCH*指令.为此,我写了一些代码:

.model flat

.code

?fast_mem_copy_sse@@YAXPAH0H@Z PROC
    MOV     edi, [esp + 4]  ; destination
    MOV     esi, [esp + 8]  ; source
    MOV     ecx, [esp + 12] ; n bytes for copy  

copy_loop_1:
    MOVAPS  xmm0, [edi + 0 * 4 * 4]
    MOVAPS  xmm1, [edi + 1 * 4 * 4]
    MOVAPS  xmm2, [edi + 2 * 4 * 4]
    MOVAPS  xmm3, [edi + 3 * 4 * 4]
    MOVAPS  xmm4, [edi + 4 * 4 * 4]
    MOVAPS  xmm5, [edi + …
Run Code Online (Sandbox Code Playgroud)

optimization assembly sse

3
推荐指数
1
解决办法
185
查看次数

Python和shell命令

我有下一个python代码:

exec_cmd = "time"
print exec_cmd  
gzip_cmd = subprocess.Popen(exec_cmd, shell=True, stdout=subprocess.PIPE)
out = gzip_cmd.communicate()[0]
print out
Run Code Online (Sandbox Code Playgroud)

当我尝试执行此代码时,我接下来:

time
Usage: time [-apvV] [-f format] [-o file] [--append] [--verbose]
       [--portability] [--format=format] [--output=file] [--version]
       [--quiet] [--help] command [arg...]
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在终端中运行此命令时,我得到了:

time

real    0m0.000s
user    0m0.000s
sys     0m0.000s
Run Code Online (Sandbox Code Playgroud)

那么问题是什么?

python shell

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

dlsym()/ dlopen()的用法

我写了下一个程序:

#include <iostream>
#include <dlfcn.h>

int main(int argc, char** argv)
{
    typedef void* (*fptr)();
    fptr func;
    void *handle = dlopen(0, RTLD_NOW);
    std::cout << dlerror() << std::endl;    
    *(void **)(&func) = dlsym(handle, "__libc_start_main");
    std::cout << dlerror() << std::endl;

    std::cout << handle << " " << func << "\n";

    dlclose(handle);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

并尝试以下一种方式编译:

g++ -rdynamic main.cpp -ldl -o test
Run Code Online (Sandbox Code Playgroud)

当我运行这个程序时,我没有看到任何消息.为什么?

感谢U的关注.

c++ posix symbols

0
推荐指数
1
解决办法
1081
查看次数

标签 统计

assembly ×1

c++ ×1

optimization ×1

posix ×1

python ×1

shell ×1

sse ×1

symbols ×1