Алгоритмы, методы решений, сравнение их производительности - страница 14

 
Sergey Dzyublik:

1. Бессмысленно. Сравниваются алгоритмы в целом на относительных результатах.
2. Решение уже интегрировано - это стандартная библиотека <Generic\ArrayList.mqh>.

1. То есть, скорость алгоритма не важна. Решение "концептуально-мощное" и этого достаточно. Ок.

2. То есть подключили через инклюд и все? Хорошо.

//--------------------------------------------------------------------

Если главный критерий оценки алгоритма - "Концептуальная мощь", то я проиграл.

Если главный критерий оценки алгоритма - простота, скорость и удобство - то выйграл.

На этом можно закрыть тему.

 
fxsaber:

  1. По какой причине стиль таков, что сначала прописываются интерфейсы, а только затем классы (как наследники соответствующих интерфейсов)?
  2. Зачем это делается? (StringToUpper(generatorName);)
  3. Очевидно, что просто забыли




Несколько удивило, что сделали через CArrayList, а не использовали только что обсуждаемый HashMap. Не стоило ориентироваться на кривой оригинал автора, где сделки - это индексы, а не тикеты.

HashMap был бы нагляднее, практичнее и быстрее, скорее всего.


Удивился сам себе, что такой код прочел с легкостью. Однако, показанного уровня абстракции в программировании сам пока не достиг. У меня пока процедурный стиль + ООП. Здесь же чистый ООП. Видимо, это какая-то хорошо усвоенная школа программирования. Похожий уровень абстракции на этом ресурсе видел только у Stanislav Korotky.


1) Стиль такой для интеграции.
Нужен протестировать свой класс - наследуйтесь и реализовывайте интерфейс для теста.
Нужен свой генератор - насделуйтесь... 


2) Да, это лишнее, перемудрил, спасибо:

StringToUpper(generatorName);



3) Нет, не забыл:

      //TODO add shared_ptr / move out generator (Dependency Injection)
      IGenerator<T>* generator = CreateGenerator<T>();

Изначально писалось под shared_ptr, реализации которого у меня нет.
Но, по хорошему, нужно вынести зависимость от IGenerator<T> в параметры функции для тестирования.

 
Sergey Dzyublik:

3) Нет, не забыл:

Изначально писалось под shared_ptr, реализации которого у меня нет.

Понял, не заметил я.

 
Длина строки string, не в курсе - сколько символов максимум?
 

Видится явно проявляемое неоднократное неуважение к сообществу и ярко выраженные провокации.

Не читать это (посты человека в различных конструктивных ветках) не всегда получается, после чего развидеть и забыть - тем более.

Троллинг и плевки в руки помощи, число которых сильно отличает этот ресурс с положительной стороны.


Возможно, ошибаюсь.

 
Vladimir Karputov:

Поправьте меня, но разве длина строки не конечна?

Ограничение только по памяти

void OnStart()
{
  string Str;
  
  Print(StringInit(Str, 1e8)); // true - 100 Mb
}
 
Реter Konow:

1. То есть, скорость алгоритма не важна. Решение "концептуально-мощное" и этого достаточно. Ок.

2. То есть подключили через инклюд и все? Хорошо.

//--------------------------------------------------------------------

Если главный критерий оценки алгоритма - "Концептуальная мощь", то я проиграл.

Если главный критерий оценки алгоритма - простота, скорость и удобство - то выйграл.

На этом можно закрыть тему.


Извините, так нельзя, каюсь.
Но какой вы глупый человек.
Проблема не в том, что кто-то что-то не знаете, а в полном нежилании хоть что-то узнать.

Какая разница 10 мс один или  8 мс другой. 
Если нужно просто относительно сравнить кто быстрее и на сколько, при этом не забыть проверить верность работы.

 
fxsaber:

Ограничение только по памяти

ОООО !!!!!

преогромное сенкью!

ато у меня строка подрезается и не знал - как же увеличить длину

Не губите ветку, не ссорьтесь тут

 

решение через лист - столько коду.... а нельзя было как то выделить конкретику

ну это я так чтобы наглядно другим было)

В общем у самого тоже никак в привычку не войдет пользоваться стандартными библиотеками - да и я думаю тут много у кого есть свои варианты этого же листа.

в общем задача таже 

приходит тикер с маджиком - надо это сохранить а потом в удобной форме дергать по тикеру ну или маджику. ну и немного усложним - т.е. сохроняем все значения, тикер маджик ТР СЛ комент, цену открытия, время, Цену закрытия.  - скажем будет для учета виртуальных ордеров

По факту наиболее быстрое решение будет хранить всю информацию в структуре. А вот доступы совершать через упорядоченого саммива индекса ссылок. причем по маджику и текру. т.е. их два будет - по памяти не рационально конечно - но если мы будет дергать ордера чатсто - то по скорости самое оно. 


Кстати вопрос кто как дефайном на принт пользоваться. может есть каки-то готовые решения. В краце надо бы чтобы печатал не так часто - но перед сбоем скидывал нужную информацию, либо как то удобно настраивался на этот лад - и желательно без глобальных переменных 

Причина обращения: