แแแแแแฝแแแแแปแแแถแแแฝแแแแแ
แแแแแแแผแแแผแแแแแขแแแแแแแพแแแแถแแแแแแปแแแแแถแแถแแแถแแแถแแแแแพแแแถแ RAM แแ
แแแแปแแแแถแแแธแแแทแแแแทแแแแแแแถแแแ แแแแปแแแนแแแทแแแแแแแแแแแผแแแแแแ (แแถแ "แแแแแถแแแแพแ" แแ
แแธแแแ) แ แพแแแแแปแแแนแแแปแแแแขแแแธแแแแ
แถแแแถแ
แแแแแปแแ แแผแ
แแแแแแแแถแแ
แแแแปแแแแแผแแธแแ!
#include <sys/time.h>
#include <string.h>
#include <iostream>
#define CNT 1024
#define SIZE (1024*1024)
int main() {
struct timeval start;
struct timeval end;
long millis;
double gbs;
char ** buffers;
buffers = new char*[CNT];
for (int i=0;i<CNT;i++) {
buffers[i] = new char[SIZE];
}
gettimeofday(&start, NULL);
for (int i=0;i<CNT;i++) {
memset(buffers[i], 0, SIZE);
}
gettimeofday(&end, NULL);
millis = (end.tv_sec - start.tv_sec) * 1000 +
(end.tv_usec - start.tv_usec) / 1000;
gbs = 1000.0 / millis;
std::cout << gbs << " GB/sn";
for (int i=0;i<CNT;i++) {
delete buffers[i];
}
delete buffers;
return 0;
}
แแถแแถแแแแ - แแแแ แแแขแแแแ แแ แถแแ แพแแแแแแแแฝแแแธแ แแแถแแแแ แแแแปแแแถแ แ แพแแแถแแแแแพแแแแแแแแแแแแ แถแแขแแแธแแแแ?
$ ./memtest
4.06504 GB / แแทแแถแแธ
แแแแ แแ 4GB/s แ
แขแแแธ?!?!
แแแถแแแแแ ?!?!?
แแแแแบแแถ Core i7 (แแแแแธแแถแแทแแแแแแถแแแแธแแแแปแแแแแแ) DDR4 แแฝแแแแแถแแแแแพแแแแแทแแแแแปแ - แ แแแปแขแแแธ?!?!
แ แแแแพแโแแผแ โแแถแแโแแโแแบโแแปแโแแแแแแถแ
แแแแแทแแแแแทแแแแแแธ (แแผแ แแถแแปแแแถแ malloc แแแแแทแแธแแแ) แแทแแแถแแทแแแแแ แแแขแแแแ แแ แถแแแแ แแถแแฝแแแนแแแถแแ แ แแผแแแแแแแแ แขแแแแแแแ แแแแพแแแแแแธแแธแแถแแแฅแแแทแแแแแแแ แแแแปแแขแแแแ แแ แถแ แ แพแแแแแแทแแแพแแแแถแแแ แ แ แแ sbrk() แแพแแแแธแแแแแพแแแแแแแแทแแแแแแ แ แพแแแแแแถแแแแแแแแกแแแแ แแแแแแทแแธแแทแแแแแแแแแ แขแถแแแแแแถแแแธแแธแแถแแแแแแธแแแแถแแแแ แแแแ แแแ
แแแแ แถแแบแแถแแแแแแแแแแถแแแแแ แแแแบแแทแแแแทแแแถแแแแแแปแแ แแแแถแแแแแแแแแทแแทแแแแแผแแแถแแแแแ แแแแแ
แ แพแแแ แแแแแแแแถแแ แผแแแแแพแแพแแแแแผแแแ แแถแแแแแแแแแธแแฝแแแแธแแแแแแแแแแถแแแแแ แแแแแแแพแแกแพแ MMU "แแถแแ" แแแ แปแแแแแแแแฝแ แแแแแถแแแแธแแแแแแแแแแทแแแแทแแแแแแแแปแแ แผแแแแแพแแแแผแแแถแแแแแแแแถแแแแแแแทแแแแแถแแแแฝแแ
แแผแ แแแแแแถแแแถแแแทแ แแพแแแทแแแแแปแแแถแแแแแแแแแพแแแถแแแแแแผแแปแแกแถแแแแแปแ แแทแ RAM แแ แแแปแแแแแแแแพแแแถแแแแแ MMU แแทแ VMM แแแแแแแแแแแแแแแทแแแแแทแแถแแ แ แพแแแพแแแแธแแถแแแแแแแแแพแแแถแแแทแแแ RAM แแพแแแแแถแแแแแแแแผแแแถแแ แถแแแแแแพแแแแแแแแแแแถแแแแแ แแแแแแแ แงแแถแ แแแแแผแ แแแแ
#include <sys/time.h>
#include <string.h>
#include <iostream>
#define CNT 1024
#define SIZE (1024*1024)
int main() {
struct timeval start;
struct timeval end;
long millis;
double gbs;
char ** buffers;
buffers = new char*[CNT];
for (int i=0;i<CNT;i++) {
// FIXED HERE!!!
buffers[i] = new char[SIZE](); // Add brackets, &$# !!!
}
gettimeofday(&start, NULL);
for (int i=0;i<CNT;i++) {
memset(buffers[i], 0, SIZE);
}
gettimeofday(&end, NULL);
millis = (end.tv_sec - start.tv_sec) * 1000 +
(end.tv_usec - start.tv_usec) / 1000;
gbs = 1000.0 / millis;
std::cout << gbs << " GB/sn";
for (int i=0;i<CNT;i++) {
delete buffers[i];
}
delete buffers;
return 0;
}
แแแโแแบโแแพแโแแแแถแแโแแโแ แถแแโแแแแพโแโแแแทแแแแแแโแขแถแแแแโแแแโแแถแโแแแแ แแโแแแโแแแแแโแแแแถแแแพแ (char 0)แ
แแแแปแแแทแแทแแแ:
$ ./memtest
28.5714 GB / แแทแแถแแธ
แแฟแแแฝแแแแแ
แแธแแแแแแแแฟแ - แแแแแทแแแพแขแแแแแแแผแแแถแแแแทแแแแแแแขแถแแแแแแแแพแแแแธแแแแพแแแถแแแแถแแแถแแแแ แแ แแปแแแแแแ
แ
แถแแแแแแพแแแฝแแแถแ
แแแแแ: www.habr.com