Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Andrew Kant                          2:469/83.1     17 Dec 2007  17:51:26
 To : Sergey Khvatov
 Subject : Злостный оффтопик - быстрая конкатенац ия строк
 -------------------------------------------------------------------------------- 
 
 
 Monday December 17 2007 15:40, Sergey Khvatov wrote to Victor Krapivin:
 
  >>> Hарод, сорри, больше по быстрому спросить негде, никто в детстве
  >>> низкоуровневым или  ядерным программированием не развлекался? Hадо
  >>> преобразовать строку, заменив русские  символы на коды вида &2432;
  >>> Проблема в том, что это надо делать быстро, функция sprintf  слишком
  >>> тормозная, как все универсальное.
 
  VK>> char* to_html_form(char* s, char c)
  VK>> {
  VK>>      *s++ = '&';
  VK>>      *s++ = (int)c / 100  + '0';
  VK>>      *s++ = ((int)c / 10) % 10  + '0';
  VK>>      *s++ = (int)c % 10  + '0';
  VK>>      *s++ = ';';
  VK>>      return s;
  VK>> }
 
  VK>> Hа multibyte (или wchar_t) переведешь самостоятельно. Принцип тот
  VK>> же.
 
  SK> Теперь собери всё это и сравни с sprintf - удивишься. Да, твой способ
  SK> быстрее, но разница незначительна.
 
 Быстрее чем работает процессор ты все равно не сможешь. Можно немного
 оптимизировать _этот_ кусок под твой процессор, но наверняка основные тормоза
 не в нем - здесь все предельно просто, обычная арифметика, проблемы наверняка
 возникают не тут, а в динамическом распределении памяти под строки и
 копировании туда-сюда.
 
  SK>  Особенно если результат нужен чтобы в конце концов его
  SK> куда-нибудь вывести.
 
 Этот кусок работает одинаково быстро (или медленно :) независимо от того, где
 нужен его результат :)
 
 PS если тебе так интересно, что тормозит - возьми какой-нибудь профилер и
 проверь, а то пока-что только голословные утверждения...
 
 Good bye!
            Andrew
 
 --- GoldED+/W32 1.1.4.7
  * Origin: * KAA * (2:469/83.1)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Злостный оффтопик - быстрая конкатенац ия строк   Sergey Khvatov   17 Dec 2007 16:40:47 
 Re: Злостный оффтопик - быстрая конкатенац ия строк   Victor Krapivin   17 Dec 2007 22:16:24 
 Злостный оффтопик - быстрая конкатенац ия строк   Andrew Kant   17 Dec 2007 17:51:26 
Архивное /ru.linux/228947668e30.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional