Более быстрая версия double_price к int_price с учетом входной последовательности - PullRequest
0 голосов
/ 07 февраля 2011

В данной торговой системе входные цены имеют тип double.Minimum_price_increment min_price_increment_ известен, и равенство определяется как:

 inline bool DblPxCompare ( const double & price1, const double & price2 ) const 
 {
    register double tdiff = ( price1 - price2 );

    return ( ( tdiff > -half_min_price_increment_ ) &&
             ( tdiff <  half_min_price_increment_ ) ) ;
 }

Реализация DblToInt:

 inline int DblPxToIntPx ( const double & price ) const 
 {
     return ( ( int ) round ( price / min_price_increment_ ) ) ;
 }

Но цены, как правило, сгруппированы, как обычно в точкевовремя заказы, как правило, отправляются по сходным ценам.Можем ли мы добиться большего успеха, например, сохранив отсортированный список из последних 20 конверсий из Двойной цены в Международную цену?

1 Ответ

3 голосов
/ 07 февраля 2011

Я был бы склонен сказать нет, кэширование не будет работать лучше. Причина в том, что каждый раз вам нужно проверять, соответствуют ли записи в кеше текущему преобразованию, и я думаю, что проверка сведет на нет любое преимущество в производительности, поскольку избавляет от необходимости выполнять преобразование в первую очередь. То, что у вас уже есть, ИМХО, недостаточно сложно, чтобы извлечь выгоду из кеширования.

...