Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Уменьшение ресурсов! [D7, XP]


Страницы:   1 2

NaRuTo ©   (2007-12-14 22:35:00) 

Я знаю что программы написанные на Delphi очень много забирают ресурсов компьютера, вот например моя простенькая программа в ОЗУ: занимает 32 MB, как другие программы более мощнее моей меньше раза в 2, а то и в 3. Хотя везде я прописываю Free либо Destroy;

Вопрос: Можно ли-уменьшить потребляемость моей программы ресурсов.


@!!ex   (2007-12-15 14:37:00) [21]

P.S.
Вернее может хранится в оперативе, если API так захочется.
НЕо вроде я это дело тестил, он вообще все текстуры туда кладет, даже если видеопамяти полно.


@!!ex   (2007-12-15 14:36:00) [22]


> Не надо так торопиться раздавать свои зубы :)

НИче, я себе коронки вставлю. ;)


> Я же предлагал вариант не использовать оперативу вообще,
> а хранить всё в видеопамяти и выводить исключительно аппаратными
> средствами.

В любом случае API хранит текстуру в обычной памяти, иначе как же работают приложения, у которых загруается гиг текстур, а видюхи всего 64 метра? ;)


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

Еще раз повторяю: текстура хранится в оперативе.


Loginov Dmitry   (2007-12-15 14:16:00) [23]

> Сильно сказано :))

Почему? Программа же "простейшая"! Судя по отжиранию памяти - как минимум 95% кода написано не автором, т.е. эта часть - за сторонними компонентами! Компоненты - это тоже часть программы. Но что они такого делают?

> мдя... не нужно давать таких советов.


это не совет, а замечание по поводу везде я прописываю Free либо Destroy. Мне лично страшно представить, как Free либо Destroy может быть прописано везде!


Sapersky   (2007-12-15 13:58:00) [24]

У меня прога написанная за неделю жрет около 30 метров памяти, и я зуб даю, что какой бы не был профи, не сможет значительно уменьшить объем отжираемой оперативы.

Не надо так торопиться раздавать свои зубы :)
Я же предлагал вариант не использовать оперативу вообще, а хранить всё в видеопамяти и выводить исключительно аппаратными средствами.
Собственно, даже если перегонять через системную, после создания текстуры можно сгенерировать уменьшенную копию битмапа для превью, а полноразмерную стереть.


Rouse_   (2007-12-15 13:53:00) [25]


> Тебе нужно прописывать везде Halt либо TerminateProcess(DWORD(-1), 0);

мдя... не нужно давать таких советов.


{RASkov}   (2007-12-15 13:51:00) [26]

> Автор видимо понятия не имеет, что делает его программа.

Сильно сказано :))


Loginov Dmitry   (2007-12-15 13:44:00) [27]

> У меня прога написанная за неделю жрет около 30 метров памяти,
> и я зуб даю, что какой бы не был профи, не сможет значительно
> уменьшить объем отжираемой оперативы.


Я же говорю, что это от задачи зависит сильно! Если ты представляешь, что делает твоя программа, и под что выделяется столько памяти - значит все нормально, и в данном случае винить Delphi, в том, что программа отжирает много памяти - просто некорректно! Автор видимо понятия не имеет, что делает его программа.


> Автор, ты скорее всего нахреначил бездумно компонентов,
> подключил туеву хучу юнитов


Весьма вероятно, что из-за этого. Но это не повод обвинять в расточительстве Delphi.


> Так что 5 лет тут вообще не понятно откуда взялось.

Просто за 5 лет разработки безо всяких текстур, сторонних компонентов и прочего программа до таких размеров так или иначе разрастется.


@!!ex   (2007-12-15 13:20:00) [28]

> [12] sniknik ©   (15.12.07 12:25)
> т.е. вариант когда "она действительно ее "жрет"", и плюс
> "возможно есть другой алгоритм" например не хранить в памяти,
> а скидывать на винт (меньше памяти за счет быстродействия)
> .

Низя. Это текстуры и они в реальном времени требуетюся несколько десятков раз в секунду.


sniknik   (2007-12-15 12:25:00) [29]

> Нет. Она просто хрнаит данные, которые требуют под себя много памяти.
т.е. вариант когда "она действительно ее "жрет"", и плюс "возможно есть другой алгоритм" например не хранить в памяти, а скидывать на винт (меньше памяти за счет быстродействия).
???
подходит. так почему же "Нет"?...


@!!ex   (2007-12-15 12:10:00) [30]

> [10] sniknik ©   (15.12.07 12:04)

Нет. Она просто хрнаит данные, которые требуют под себя много памяти.


sniknik   (2007-12-15 12:04:00) [31]

> У меня прога написанная за неделю жрет около 30 метров памяти, и я зуб даю, что какой бы не был профи
это смотря что ты там делаешь, и как, возможно есть другой алгоритм. и если она действительно "жрет", а то возможно она выделяет все новые и новые куски оставляя старые незадействованными только по той причине, что памяти дофига и перераспределение не требуется.


@!!ex   (2007-12-15 11:53:00) [32]

Удалено модератором


@!!ex   (2007-12-15 11:52:00) [33]

> А вот если программировать на Delphi уметь, то для того,
> чтобы программа стала отжирать 32МВ, нужно лет пять усиленно
> стараться (в зависимости от задачи).

У меня прога написанная за неделю жрет около 30 метров памяти, и я зуб даю, что какой бы не был профи, не сможет значительно уменьшить объем отжираемой оперативы. Так что 5 лет тут вообще не понятно откуда взялось.


Loginov Dmitry   (2007-12-15 10:01:00) [34]

> Я знаю что программы написанные на Delphi очень много забирают
> ресурсов компьютера


Не правда. По сравнению с современными средствами программирования программы, написанные на Delphi ведут себя очень даже скромно.


> вот например моя простенькая программа в ОЗУ: занимает 32
> MB


Если программа действительно простенькая, то, вероятно она выполняешь лишь одно действие -
GetMem(P, 32000000). А то и в цикле. А вот если программировать на Delphi уметь, то для того, чтобы программа стала отжирать 32МВ, нужно лет пять усиленно стараться (в зависимости от задачи).


> Хотя везде я прописываю Free либо Destroy


Тебе нужно прописывать везде Haltлибо TerminateProcess(DWORD(-1), 0);Тогда притензий к твоим "поделкам" точно никаких не будет.


> Вопрос: Можно ли-уменьшить потребляемость моей программы
> ресурсов.


см. предыдущий пункт.


Германн   (2007-12-15 02:49:00) [35]


> Rouse_ ©   (15.12.07 02:24) [5]
>
>
> > вот например моя простенькая программа в ОЗУ: занимает
> 32 MB
>
> Уж какой год человечество измеряет объем оперативной памяти
> гигобайтами - зачем ему твои 32?
>

"Чем только не занимаются люди! Параллельно большому миру, в котором живут большие люди и большие вещи, существует маленький мир с маленькими людьми и маленькими вещами. В большом мире изобретен дизель-мотор, написаны "Мертвые души", построена Днепровская гидростанция и совершен перелет вокруг света. В маленьком мире изобретен кричащий пузырь "уйди-уйди", написана песенка "Кирпичики" и построены брюки фасона "полпред". В большом мире людьми двигает стремление облагодетельствовать человечество. Маленький мир далек от таких высоких материй. У его обитателей стремление одно -- как-нибудь прожить, не испытывая чувства голода.

Маленькие люди торопятся за большими. Они понимают, что должны быть созвучны эпохе и только тогда их товарец может найти сбыт. В советское время, когда в большом мире созданы идеологические твердыни, в маленьком мире замечается оживление. Под все мелкие изобретения муравьиного мира подводится гранитная база "коммунистической" идеологии. На пузыре "уйди-уйди" изображается Чемберлен, очень похожий на того, каким его рисуют в "Известиях". В популярной песенке умный слесарь, чтобы добиться любви комсомолки, в три рефрена выполняет и даже перевыполняет промфинплан. И пока в большом мире идет яростная дискуссия об оформлении нового быта, в маленьком мире уже вce готово: есть галстук "Мечта ударника", толстовка-гладковка, гипсовая статуэтка "Купающаяся колхозница" и дамские пробковые подмышники "Любовь пчел трудовых".
(с) ИИ ЕП


Rouse_   (2007-12-15 02:24:00) [36]


> вот например моя простенькая программа в ОЗУ: занимает 32 MB

Уж какой год человечество измеряет объем оперативной памяти гигобайтами - зачем ему твои 32?


Johnmen   (2007-12-14 22:53:00) [37]


> Gydvin ©   (14.12.07 22:51) [3]
> код в студию

Не надо здесь спама.


Gydvin   (2007-12-14 22:51:00) [38]

код в студию


Johnmen   (2007-12-14 22:46:00) [39]


> Я знаю что программы написанные на Delphi очень много забирают
> ресурсов компьютера

Откуда?

> другие программы более мощнее моей

На сколько киловатт?

> Можно ли-уменьшить потребляемость моей программы ресурсов

Каких именно?


homm   (2007-12-14 22:38:00) [40]

> [0] NaRuTo   (14.12.07 22:35)
> Хотя везде я прописываю Free либо Destroy;

ужно прописывать не везде, а там, где нужно. Ты уверен, что память не течет?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо