Linker performance related to swap space?

后端 未结 3 1539
鱼传尺愫
鱼传尺愫 2021-02-02 06:34

Sometimes it\'s handy to mock up something with a little C program that uses a big chunk of static memory. I noticed after changing to Fedora 15 the program took a long

3条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-02-02 07:04

    I tortured tested my OpenSuse 11.4 (going for 12.1 in a week)

    I have 4GiB ram + 2GiB swap and did not notice serious slow down, the system might be trashing at times, but still the compile time was short.

    The longest was 6 seconds while heavy swapping.

    [tester@ulises ~]$ free -m
                 total       used       free     shared    buffers     cached
    Mem:          3456       3426         30          0          4        249
    -/+ buffers/cache:       3172        284
    Swap:         2055       1382        672
    [tester@ulises ~]$ time cc -Wall -O test2.c
    test2.c: In function ‘main’:
    test2.c:13:2: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘size_t’
    
    real    0m6.501s
    user    0m0.101s
    sys     0m0.078s
    [tester@ulises ~]$ free -m
                 total       used       free     shared    buffers     cached
    Mem:          3456       3389         67          0          5        289
    -/+ buffers/cache:       3094        362
    Swap:         2055       1455        599
    [tester@ulises ~]$ free -m
                 total       used       free     shared    buffers     cached
    Mem:          3456       3373         82          0          4        264
    -/+ buffers/cache:       3104        352
    Swap:         2055       1442        612
    [tester@ulises ~]$ time cc -Wall -O test2.c
    test2.c: In function ‘main’:
    test2.c:13:2: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘size_t’
    
    real    0m1.122s
    user    0m0.086s
    sys     0m0.045s
    [tester@ulises ~]$ time cc -Wall -O test2.c
    test2.c: In function ‘main’:
    test2.c:13:2: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘size_t’
    
    real    0m0.095s
    user    0m0.047s
    sys     0m0.032s
    [tester@ulises ~]$ free -m
                 total       used       free     shared    buffers     cached
    Mem:          3456       3376         79          0          4        252
    -/+ buffers/cache:       3119        336
    Swap:         2055       1436        618
    [tester@ulises ~]$ time cc -Wall -O test2.c
    test2.c: In function ‘main’:
    test2.c:13:2: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘size_t’
    
    real    0m0.641s
    user    0m0.054s
    sys     0m0.040s
    

    Between running I have loaded and unloaded Virtualbox Box VM's, Eclipse, large pdf files, mi firefox alone using 800+ MiB. I didi not go the limit, otherwise many Apps would be killed by the OS. It has a preference for killing Firefox.. :-)

    I also went to the extreme defining:

    #define M 1048576
    #define GIANT_SIZE (20000*M)
    

    and even then nothing change significantly.

    [tester@ulises ~]$ time cc -Wall -O test2.c
    test2.c:7:14: warning: integer overflow in expression
    test2.c:7:8: error: size of array ‘g_arr’ is negative
    test2.c:7:1: warning: variably modified ‘g_arr’ at file scope
    test2.c: In function ‘main’:
    test2.c:13:2: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘size_t’
    
    real    0m0.661s
    user    0m0.043s
    sys     0m0.031s
    

    Edit: I re-tested using Fedora16 on a VM with 512MiB RAM and 1.5GiB swap, and things were similar except for an error message on my "maximum stress version" where 20000 megabytes were assigned to the array. The error say the array size was negative.

    [ricardo@localhost ~]$ time gcc -Wall test2.c 
    test2.c:7:14: warning: integer overflow in expression [-Woverflow]
    test2.c:7:8: error: size of array ‘g_arr’ is negative
    test2.c:7:1: warning: variably modified ‘g_arr’ at file scope [enabled by default]
    test2.c: In function ‘main’:
    test2.c:13:2: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘size_t’ [-Wformat]
    
    real    0m1.053s
    user    0m0.050s
    sys     0m0.137s
    

    The same response happens in opensuse 12.1 VM. The Fedora 16 install seamed verry slow and memory hungry(during install I had to use 800MiB versus OpenSuse 512 MiB), I could not use swapoff on Fedora because it was using a lot of swap space. I had not sluggishness nor memory problems on OpenSuse 12.1 and . Both have essentially the same versions of kernel, gcc, etc. Both using stock installs with KDE as the Desktop environment

    I could not reproduce you issues, Maybe is a gcc related issue. Try downloading an older version like 4.5 and see what happens

提交回复
热议问题