Re[3]: [performance] чего-то я не понимаю в этой жизни
От: rg45 СССР  
Дата: 30.06.22 19:00
Оценка: 6 (1)
Здравствуйте, Codealot, Вы писали:

C>Ну начнем с того, что у тебя там string а не wstring. Так что ты сравниваешь яблоки с апельсинами.


Ok, мой косяк. С возрастом зрение слабеет, понимаешь, не разглядел, что у тебя stoi, показалось, что atoi.

Ну, давай исправим, какие проблемы:

  C++ (290 ms)
#include <iostream>
#include <vector>
#include <string>
#include <chrono>

std::vector<std::wstring> MakeIntSequence(int size)
{
   std::vector<std::wstring> v;
   v.reserve(size);
   for (int i = 0; i < size; ++i)
   {
      v.push_back(std::to_wstring(i));
   }
   return v;
}

int main()
{
   namespace tm = std::chrono;

   const auto vals = MakeIntSequence(10000000);

   const auto t0 = tm::steady_clock::now();

   int hash{};
   for (const auto& val : vals)
   {
      hash ^= std::stoi(val);
   }
   const auto dt = tm::duration_cast<tm::milliseconds>(tm::steady_clock::now() - t0);

   std::cout << "Processing time: " << dt.count() << "ms" << std::endl;
}


Все равно получается 300 против 800. Как ты умудрился получить плюсовый код в пять раз медленнее шарпного, по-прежнему остается загадкой. Моежт, приведешь уже полные тексты примеров?
--
Не можешь достичь желаемого — пожелай достигнутого.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.