[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