Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> std::string vs std:wstring: кто шустрее? VC++ 2008 
:(
    Опции темы
Alca
Дата 23.1.2009, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 7
Всего: 50



std::string vs std:wstring: кто шустрее анси или юникод строка? VC++ 2008.


--------------------
PM WWW ICQ Skype Jabber   Вверх
mrbrooks
Дата 23.1.2009, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 2
Всего: 306



йа пологаю что оба не слабые чуваки  smile 

а что использовать? ну дык скорее юникодную строку - ибо юникод наше все!
PM MAIL   Вверх
Lycifer
Дата 23.1.2009, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 4.11.2007

Репутация: нет
Всего: нет



во первых это typedef.(ТО и есть алгоритм один)
ВО вторых wstring это wcha_t - а значит что 2 байта
так что string экономичней и немного шустрее.(пример: копирование, удаление в принципе любай модификация)
PM MAIL ICQ   Вверх
mrbrooks
Дата 23.1.2009, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 2
Всего: 306



Цитата(Lycifer @  23.1.2009,  15:00 Найти цитируемый пост)
так что string экономичней и немного шустрее 

тут надо копать в сторону - а зачем собственно юникод. И все станет очевидно - зачем и когда применять имхо.  smile 
PM MAIL   Вверх
Alca
Дата 23.1.2009, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 7
Всего: 50



Тестил (проект прикреплён):
Цитата

Строки:
std::string =  "bla-bla-bla-....";
std::wstring = L"bla-bla-bla-....";

Компилер:
VC++ 2008 (без SP1)

Тачка:
Celeron 1.8 Ghz, RAM 760 Mb

Функция, которой замерял время:
GetTickCount()

Результат (время):
Test AnsiString:        0:02:01:969
Test UnicodeString:     0:02:08:656

Испльзование памяти (диспетчер задач):
Ansi.exe  - 232 Кб
Unicode.exe - 260 Кб


Это сообщение отредактировал(а) Alca - 23.1.2009, 16:18

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  Ansi_vs_Unicoe.zip 31,24 Kb


--------------------
PM WWW ICQ Skype Jabber   Вверх
pan2004
Дата 23.1.2009, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 357
Регистрация: 28.7.2007

Репутация: 1
Всего: 9



Цитата(Alca @  23.1.2009,  14:55 Найти цитируемый пост)
std::string vs std:wstring: кто шустрее анси или юникод строка?

Сравнили кота с яичницей... smile 


--------------------
Qt4/C++ fan
WinXP SP3: MSVC++2005 Qt4.5.1 Boost1.39
сыграем в дурака?
PM MAIL   Вверх
Alca
Дата 23.1.2009, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 7
Всего: 50



Цитата

Сравнили кота с яичницей..

???


--------------------
PM WWW ICQ Skype Jabber   Вверх
Lazin
Дата 23.1.2009, 21:59 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



я считаю что int шустрее чем std::string, давайте напишем тест smile 
PM MAIL Skype GTalk   Вверх
JackYF
Дата 24.1.2009, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Ребят, вам самим не смешно? Поддерижваю Lazin.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Alca
Дата 24.1.2009, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 7
Всего: 50



Цитата

я считаю что int шустрее чем std::string, давайте напишем тест

А что инт держит строки? smile 
Цитата

Ребят, вам самим не смешно? Поддерижваю Lazin.

Или вы хотите сказать, что AnsiString быстрее работает чем std::string (C++Builder)? smile 

Это сообщение отредактировал(а) Alca - 24.1.2009, 18:17


--------------------
PM WWW ICQ Skype Jabber   Вверх
Lazin
Дата 24.1.2009, 18:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(Alca @  24.1.2009,  18:10 Найти цитируемый пост)
Или вы хотите сказать, что AnsiString быстрее работает чем std::string (C++Builder)?

я хотел сказать, что это разные типы данных, которые хранят разные данные и не взаимо-заменяемы, так-же как int и std::string smile 
Цитата(Alca @  24.1.2009,  18:10 Найти цитируемый пост)
А что инт держит строки?

из 4х символов smile 
PM MAIL Skype GTalk   Вверх
Alca
Дата 24.1.2009, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 7
Всего: 50



Цитата

Цитата

А что инт держит строки?

из 4х символов

Код

int i = "abcd";    //???
 smile 

Это сообщение отредактировал(а) Alca - 24.1.2009, 18:43


--------------------
PM WWW ICQ Skype Jabber   Вверх
Lazin
Дата 24.1.2009, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Код

int lolstr;
char* str = "lol";
memcpy((void*)&lolstr, (void*)str, sizeof(lolstr));

естественно это шутка
PM MAIL Skype GTalk   Вверх
baldina
Дата 24.1.2009, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата

Результат (время):
Test AnsiString:        0:02:01:969
Test UnicodeString:     0:02:08:656


чушь полная. здесь погрешность измерений выше чем порядок выведенных цифр.
потренируйся на паре строчек размером в сотню мегабайт, тогда разница и будет заметна. в пользу wstring ;)
в остальных случаях все обрабатывается настолько быстро, что вопрос не имеет смысла.
другое дело когда накладные расходы связаны, например, с чтением диска - здесь выигрыш string может быть за счет меньшего объема информации. но, опять же, только на очень больших строках (или их числе). 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0969 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.