Почему stoi работает намного медленнее, чем stringstream без -O3?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему stoi работает намного медленнее, чем stringstream без -O3?

Сообщение Anonymous »

Сегодня я говорил о новостных функциях C++11, таких как потоки, to_string и stoi.

Но на самом деле все это уже было возможно в C ++98.

Тогда я решил сравнить старые библиотеки с новостными библиотеками:

C++11:


g++ -std=c++11 main.cpp

Код: Выделить всё

#include 
#include 
#include 

using namespace std;

int main()
{
clock_t tStart = clock();
string input = "50";

for (int i = 0; i < 50000; i++)
{
int number = stoi(input);
}

cout 

[img]https://i.stack.imgur.com/NRC4B.png[/img]


Ubuntu 14.04:

[img]https://i.stack.imgur.com/TkzgA.png[/img]


[img]https://i.stack.imgur.com/BDATH.png[/img]


Slackware Server 14.1 через SSH:

[img]https ://i.stack.imgur.com/6nIqw.png[/img]


[img]https://i .stack.imgur.com/90mtF.png[/img]


[b]Конфигурация:[/b]

Облегченный сервер Windows 7: Процессор Intel(R) Core(TM) i5-4590 @ 3,30 ГГц

Ubuntu 14.04 : Процессор Intel(R) Core(TM) i7-2670QM @ 2,20 ГГц

Slackware Server 14.1 через SSH: Intel( R) Процессор Core(TM) i3-4150 @ 3,50 ГГц

[b]Вопросы:[/b]

В чем разница между stoi и stringstream?

Зачем и когда использовать функции новостей внутри библиотеки строк (stoi, to_string)?
И, наконец... stoi работает намного быстрее с -O3, чего нельзя сказать о sstream. Итак, что -O3 делает со стои, а не со sstream? 

Подробнее здесь: [url]https://stackoverflow.com/questions/35307176/why-stoi-is-much-slower-than-stringstream-without-o3[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»