![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Уменьшение ресурсов! [D7, XP]
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;
ужно прописывать не везде, а там, где нужно. Ты уверен, что память не течет?