Ошибки, баги, вопросы - страница 1336

 

Это вся проблема из-за 24 байтов что ли? извиняюсь, вы на калькуляторе что ли пытаетесь писать ПО для МТ :) ?

Извиняюсь конечно, но высасыванием проблемы из пальца, вы затираете чужие вопросы, которых и так то стали редко замечать представители разработчиков.

 
Alexey Navoykov:

Так а почему же деструктор то не оптимизировать? Лишние 8 байт хранить только из-за него...

Ну я просто не в курсе, как у вас там всё реализовано. Вот допустим если имеется массив объектов:

Хранятся ли в системе ссылки (указатели) для каждого элемента?

Это то понятно, но на структуру у вас нельзя брать указатель, и это снижает удобство пользования ею.  Поэтому тут порой приходится делать мучительный выбор...   Вот если бы размер класса удалось уменьшить, то было бы замечательно.  А если ещё и указатель на структуру появится, то вообще красота )

Создавайте объекты динамически, оператором new, и не придется создавать пустые объекты вообще.

На структуру не может ссылаться указатель, но структура может быть передана по ссылке, например: OrderSend(MqlTradeRequest& request, MqlTradeResult& result) - в подавляющем большинстве случаев этого достаточно. 

 
Konstantin Karpov:

Это вся проблема из-за 24 байтов что ли? извиняюсь, вы на калькуляторе что ли пытаетесь писать ПО для МТ :) ?

Извиняюсь конечно, но высасыванием проблемы из пальца, вы затираете чужие вопросы, которых и так то стали редко замечать представители разработчиков.

Поизучайте для начала, что такое массивы.
 
Alexey Navoykov:
Поизучайте для начала, что такое массивы.

ну я их изучил еще несколько лет назад :) если вы объекты класса загоняете в массив, то создайте список указателей, а объекты класса создавайте в "куче", вам правильно ведь подсказали про оператор new...

У меня все данные которые имеют большой объем, изначально обрабатываются объектами классов, расположенных в "куче", памяти в ПК 8 гигов и я вижу как эта память используется по полной, даже когда один раз допустил ошибку в алгоритме и пошла утечка памяти, память забилась до 95%, а дальше операционная система начала сама все чистить.

Так что лучше не прикидывайтесь обиженным мальчиком, а сами просмотрите все возможности языка и все у вас получится :)

 
Vasiliy Sokolov:

Создавайте объекты динамически, оператором new, и не придется создавать пустые объекты вообще.

На структуру не может ссылаться указатель, но структура может быть передана по ссылке, например: OrderSend(MqlTradeRequest& request, MqlTradeResult& result) - в подавляющем большинстве случаев этого достаточно. 

Вот к чему эти ваши советы?  Такое ощущение, что через строчку прочитали,  и скорей бы что-то написать.  Речь идёт про размер класса.  Этот размер не зависит от того, как объект создан, статически или динамически. А "создавать пустые объекты" - это вообще я не понял о чём.   И передача аргументов в функцию тоже здесь совершенно не по теме.   По-вашему, мы что тут дети малые, не знаем как передаются объекты в функцию?

 
Konstantin Karpov:

ну я их изучил еще несколько лет назад :) если вы объекты класса загоняете в массив, то создайте список указателей, а объекты класса создавайте в "куче", вам правильно ведь подсказали про оператор new...

У меня все данные которые имеют большой объем, изначально обрабатываются объектами классов, расположенных в "куче", памяти в ПК 8 гигов и я вижу как эта память используется по полной, даже когда один раз допустил ошибку в алгоритме и пошла утечка памяти, память забилась до 95%, а дальше операционная система начала сама все чистить.

Так что лучше не прикидывайтесь обиженным мальчиком, а сами просмотрите все возможности языка и все у вас получится :)

Ещё один умник...  Начал про калькулятор, теперь ему уже и 8 гигов нипочём.   Про указатели и кучу - к чему эти ваши блестящие познания?  Здесь разве кто-то спрашивал, что такое указатели?  Или это так просто за жизнь поболтать?

В общем, ребята, убедительно прошу вас, флудите в какой-нибудь другой ветке пожалуйста, здесь никто не спрашивал вашего совета. Диалог идёт конкретно с разработчиком.

 
Alexey Navoykov:

Вот к чему эти ваши советы?  Такое ощущение, что через строчку прочитали,  и скорей бы что-то написать.  Речь идёт про размер класса.  Этот размер не зависит от того, как объект создан, статически или динамически. А "создавать пустые объекты" - это вообще я не понял о чём.   И передача аргументов в функцию тоже здесь совершенно не по теме.   По-вашему, мы что тут дети малые, не знаем как передаются объекты в функцию?

Послушай умник, иди поучи азы программирования сначала в средах с управляемой памятью: тебе четко был дан ответ, что класс, даже пустой, содержит определенные мета данные. Их размер и организация оптимальны. Кто ты такой, что бы учить разработчиков как правильно писать компилятор и хранить данные!? Хочешь сэкономить несколько байтов - иди строчи свой велосипед на Си или Ассемблере.

з.ы. Развелось умников, прочитавших "Си для начинающих" а потом дающих свои советы. 

 
Alexey Navoykov:

Ещё один умник...  Начал про калькулятор, теперь ему уже и 8 гигов нипочём.   Про указатели и кучу - к чему эти ваши блестящие познания?  Здесь разве кто-то спрашивал, что такое указатели?  Или это так просто за жизнь поболтать?

В общем, ребята, убедительно прошу вас, флудите в какой-нибудь другой ветке пожалуйста, здесь никто не спрашивал вашего совета. Диалог идёт конкретно с разработчиком.

Судя по вашим высказываниям, вы работаете с массивами объектов классов, которых много на столько, что они одним размером своим заполняют память терминала, что он видимо начинает жутко тормозить, иначе вы этот вопрос не подняли бы. Думаю что стратегически выбран не верный подход к работе с вашими данными, о чем вам дали не один совет:

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

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

и обостряться на советы не стоит, если хотите только с разработчиком пообщаться то есть сервисдеск, а тут народу много :)

 
Renat Fatkhullin:
у меня вопрос - какой объем памяти выделяется терминалом (МТ4, МТ5х86 и МТ5х64) для советников?
 

Разработчики не без юмора

По мне так загрузка, а "Закачка" что то типа качать дерево в право или лево.

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