Позвольте пожалуйста еще один вопрос по скорости работы функции, в данном случае это memcpy.
Я просто пытаюсь понять, как она работает и ее скорость и вот есть небольшая для меня непонятка:
У менять есть обычный константый массив wchar_t и мне нужно из него просто побайтно перекопировать в указатель на char:
Вот код в VS2017, в release, x32:
#include "pch.h"
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
wchar_t my_wchar[] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, '\0' }; // 39 элементов
cout << "size:" << sizeof(my_wchar) / sizeof(wchar_t) << endl;
unsigned char* my_char_pointer;
my_char_pointer = new unsigned char[sizeof(my_wchar)];
//И вызываю memcpy:
int clock1 = clock();
for (unsigned int y = 0; y < 999999999 * 4; y++)
{
memcpy(my_char_pointer, my_wchar, sizeof(my_wchar));
}
int clock2 = clock();
cout << "time:" << clock2 - clock1 << endl;
//------------------------------------------------------------------------------------------------------------
wchar_t my_wchar1[] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, '\0' }; // 38 элементов
cout << "size:" << sizeof(my_wchar1) / sizeof(wchar_t) << endl;
unsigned char* my_char_pointer1;
my_char_pointer1 = new unsigned char[sizeof(my_wchar1)];
//И вызываю memcpy:
clock1 = clock();
for (unsigned int y = 0; y < 999999999 * 4; y++)
{
memcpy(my_char_pointer1, my_wchar1, sizeof(my_wchar1));
}
clock2 = clock();
cout << "time1:" << clock2 - clock1 << endl;
}
И вот в чем проблема, на кол-ве элементов my_wchar1 38 или 40 - код выполняется 6 секунд, НО, как только кол-во элементов у my_wchar1 сделать 39 - выполнение кода люто проваливается по скорости и время выполнения составляет 32 секунды! Почти в 5 раз дольше.
Это как понимать ?Подскажите пожалуйста из за чего это ?
Я могу ооочень отдаленно предположить, что это возможно как то связано с WORD
'ами, DOUBLE WORD
'ами и прочими словами процессора, но не так же сильно это должно зависеть ?
PS:Только что выяснилось, что при запуск кода на x64 - такой заторможенности не проявляется.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Ситуация такова, внутри метода класса List удаляю объект, с которым работаю, а после этого хочу запустить конструктор копирования для этого...
Есть модель Articles, там есть 2 метода, первый getArticles, второй getComments
Здраствуйте,у меня в wordpress есть созданный register_post_type там создан архив car (он верный проверял с помощью функции) в нем есть к примеру машинна...
У меня есть самописный сайт на PHPБаза данных MySQL