小编gpn*_*uma的帖子

与clang相比,gcc的__builtin_memcpy性能与一定数量的字节相比是可怕的

在我做其他任何事情之前,我想我先在这里分享一下这个意见.我在设计算法时发现gcc编译的代码性能对于一些简单的代码与clang相比是灾难性的.

如何重现

创建test.c包含此代码的文件:

#include <sys/stat.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>

int main(int argc, char *argv[]) {
    const uint64_t size = 1000000000;
    const size_t alloc_mem = size * sizeof(uint8_t);
    uint8_t *mem = (uint8_t*)malloc(alloc_mem);
    for (uint_fast64_t i = 0; i < size; i++)
        mem[i] = (uint8_t) (i >> 7);

    uint8_t block = 0;
    uint_fast64_t counter = 0;
    uint64_t total = 0x123456789abcdefllu;
    uint64_t receiver = 0;

    for(block = 1; block <= 8; block ++) …
Run Code Online (Sandbox Code Playgroud)

c performance gcc clang

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

标签 统计

c ×1

clang ×1

gcc ×1

performance ×1