[Moscow.pm] Сравнение языков

Михаил Монашёв postmaster на softsearch.ru
Вт Фев 10 03:04:12 PST 2015


Здравствуйте, Анатолий.

> Linux i386
 >> gcc -O3 -march=native  3.c -o 3.out && ./3.out
> Time:(0.00000000)ms . Sum: 49999995000000

Это из-за того, что низкая точность у clock().

> Кстати лучше считать с нуля тогда процесор может использовать prefetch

Да, действительно, стало чуть быстрее.

Вот доработанный вод:

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main()
{
        unsigned __int32 *arr;

        arr  = (unsigned __int32 *) malloc(10000000 * sizeof(unsigned __int32));

        int i,z;
        for( i=0; i<10000000; i++) {
                arr[i] = i;
        }

        clock_t start = clock();

        unsigned __int64 sum;

        for(z = 0; z < 100; z++ ){
            sum = 0;
            for( i=0; i<10000000; i++) {
                            sum+=arr[i];
            }
        }

        clock_t end = clock();

        printf("Time:(%0.8f)ms . Sum: %llu", ((double)end-start)*1000/CLOCKS_PER_SEC/z, sum);
        return 0;
}

C:\Temp>gcc -O3 -march=native  3.c -o 3.exe

C:\Temp>3.exe
Time:(8.96000000)ms . Sum: 49999995000000


Мой проц:
        Number of cores         2 (max 2)
        Number of threads       2 (max 2)
        Name                    Intel Mobile Core 2 Duo T8100
        Codename                Penryn
        Specification           Intel(R) Core(TM)2 Duo CPU     T8100  @ 2.10GHz
        Package (platform ID)   Socket P (478) (0x7)
        CPUID                   6.7.6
        Extended CPUID          6.17
        Core Stepping           M0
        Technology              45 nm
        Core Speed              2094.6 MHz
        Multiplier x Bus Speed  10.5 x 199.5 MHz
        Rated Bus speed         798.0 MHz
        Stock frequency         2100 MHz
        Instructions sets       MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, EM64T, VT-x
        L1 Data cache           2 x 32 KBytes, 8-way set associative, 64-byte line size
        L1 Instruction cache    2 x 32 KBytes, 8-way set associative, 64-byte line size
        L2 cache                3072 KBytes, 12-way set associative, 64-byte line size

Chipset:

Northbridge                     Intel PM965 rev. C0
Southbridge                     Intel 82801HBM (ICH8-ME) rev. B1
Graphic Interface               PCI-Express
PCI-E Link Width                x16
PCI-E Max Link Width            x16
Memory Type                     DDR2
Memory Size                     4 GBytes
Channels                        Dual, (Symmetric)
Memory Frequency                332.5 MHz (3:5)
CAS# latency (CL)               5.0
RAS# to CAS# delay (tRCD)       5
RAS# Precharge (tRP)            5
Cycle Time (tRAS)               15
MCHBAR I/O Base address         0x0FED14000
MCHBAR I/O Size                 4096

Память:
DIMM #                          1
        SMBus address           0x50
        Memory type             DDR2
        Module format           SO-DIMM
        Manufacturer (ID)       Hyundai Electronics (AD000000000000000000)
        Size                    2048 MBytes
        Max bandwidth           PC2-5300 (333 MHz)
        Part number             HYMP125S64CP8-Y5  
        Serial number           00002120
        Manufacturing date      Week 14/Year 08
        Number of banks         2
        Data width              64 bits
        Correction              None
        Nominal Voltage         1.80 Volts
        EPP                     no
        XMP                     no
        AMP                     no
JEDEC timings table             CL-tRCD-tRP-tRAS-tRC @ frequency
        JEDEC #1                3.0-3-3-9-12 @ 200 MHz
        JEDEC #2                4.0-4-4-12-16 @ 266 MHz
        JEDEC #3                5.0-5-5-15-20 @ 333 MHz

DIMM #                          2
        SMBus address           0x52
        Memory type             DDR2
        Module format           SO-DIMM
        Manufacturer (ID)       Hyundai Electronics (AD000000000000000000)
        Size                    2048 MBytes
        Max bandwidth           PC2-5300 (333 MHz)
        Part number             HYMP125S64CP8-Y5  
        Serial number           00001123
        Manufacturing date      Week 14/Year 08
        Number of banks         2
        Data width              64 bits
        Correction              None
        Nominal Voltage         1.80 Volts
        EPP                     no
        XMP                     no
        AMP                     no
JEDEC timings table             CL-tRCD-tRP-tRAS-tRC @ frequency
        JEDEC #1                3.0-3-3-9-12 @ 200 MHz
        JEDEC #2                4.0-4-4-12-16 @ 266 MHz
        JEDEC #3                5.0-5-5-15-20 @ 333 MHz

-- 
С уважением,
 Михаил                          mailto:postmaster на softsearch.ru



Подробная информация о списке рассылки Moscow-pm