ЦП: Intel® Core™ i7-6700HQ 2,6 ГГц
ОЗУ: 16 ГБ
ОС : Windows 10 1909.
IDE: Microsoft Visual Studio Community 2019, версия 16.4.4.
Параметры оптимизации c/c++: максимальная оптимизация (предпочтительная скорость) ( /O2)
Код: Выделить всё
class A
{
public:
A(int input_size, int input_value) // constructor
{
this->data = std::make_unique(input_size);
this->size = input_size;
for (int loop_number = 0; loop_number < size; loop_number++) {
data[loop_number] = input_value;
}
}
std::unique_ptr get_data()
{
// deep copy
auto return_data = std::make_unique(size);
for (int loop_number = 0; loop_number < size; loop_number++) {
return_data[loop_number] = data[loop_number];
}
return return_data;
}
int get_size()
{
return this->size;
}
private:
int size;
std::unique_ptr data;
};
Код: Выделить всё
class B
{
public:
B(A &input_object) // constructor
{
this->size = input_object.get_size();
this->data = std::make_unique(this->size);
this->start = std::chrono::high_resolution_clock::now();
// version 1
for (int loop_number = 0; loop_number < input_object.get_size(); loop_number++) {
this->data[loop_number] = transform_from_A(input_object.get_data()[loop_number]);
}
this->stop = std::chrono::high_resolution_clock::now(); // for execution time measurement
}
std::unique_ptr get_data()
{
// deep copy
auto return_data = std::make_unique(size);
for (int loop_number = 0; loop_number < size; loop_number++) {
return_data[loop_number] = data[loop_number];
}
return return_data;
}
void print_construction_time()
{
auto duration = std::chrono::duration_cast(stop - start);
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/60386547/compiler-optimization-in-c[/url]