Форум: "Прочее";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];
ВнизRuntime packages Найти похожие ветки
← →
Германн © (2016-03-03 23:58) [0]Зачем они нужны?
Теоретически понятно зачем. Практически...?
Позвольте уважаемые форумчане устроить миниопрос.
1. Кто-нибудь из вас использует в своих программах рантайм пакеты?
2. Кто-нибудь видел сторонние программы использующие Дельфийские рантайм пакеты?
← →
Rouse_ © (2016-03-04 00:03) [1]1 нет
2 да
Нужны для уменьшения обьема приложения
← →
Inovet © (2016-03-04 00:16) [2]По идее должны экономить ОЗУ при запуске нескольких разных приложений их использующих.
← →
Kerk © (2016-03-04 00:23) [3]Да
Да
← →
Германн © (2016-03-04 00:24) [4]
> Rouse_ © (04.03.16 00:03) [1]
> 2 да
И какие?
Уменьшение объёма приложения весьма неоднозначная проблема. И ЮЗ в той теме, как грамотный специалист, об этом предупредил. Вместе с исполняемым файлом приходится тащить/распространять ещё и библиотеки. Причём суммарный объём дистрибутива в этом случае оказывается большим, чем дистрибутив программы не использующей рантайм пакеты.
← →
Германн © (2016-03-04 00:30) [5]
> Inovet © (04.03.16 00:16) [2]
> Kerk © (04.03.16 00:23) [3]
По идее, они действительно экономят, если я (к примеру) напишу и установлю две свои программы на один компьютер. Если же эти две программы написаны разными авторами, то в виду разных версий Дельфи у этих авторов никакой экономии весьма вероятно и не будет!
← →
Германн © (2016-03-04 00:39) [6]2 Kerk © (04.03.16 00:23) [3]
Не сразу заметил, что ты и на второй вопрос ответил "Да". Тогда если не "влом" назови эту (эти) стороннюю программу.
← →
Eraser © (2016-03-04 01:41) [7]
> Германн © (03.03.16 23:58)
> Теоретически понятно зачем. Практически...?
во времена первых версий Делфи во всю еще были в ходу дискеты, так что уменьшение размера еще носило практический смысл.
← →
Германн © (2016-03-04 01:48) [8]Это всё дела минувших дней. Сейчас- то зачем это вспоминать?
← →
Eraser © (2016-03-04 02:19) [9]
> Германн © (04.03.16 01:48) [8]
обратная совместимость. наверняка многие не поймут, если в Делфи возьмут и вот так просто отменят концепцию runtime packages, тем более, что это не влияет на традиционную сборку приложения, а является, скорее, фитчей. уверен найдется достаточно мазохистов, которые ту же локализацию через эти пакеты реализуют, да мало ли чего там.
← →
Kerk © (2016-03-04 02:36) [10]Да причем тут размер. DLL ведь не для уменьшения размеров придумали. А BPL - это те же DLL, но удобнее.
← →
Юрий Зотов © (2016-03-04 06:10) [11]Дело не только (и не столько) в размере. Плагинная архитектура - вот что просто и естественно реализуется через run-time пакеты. А это и мультиязычность, и гибкость, и наращиваемый функционал и т.д.
← →
эндсоувот © (2016-03-04 08:45) [12]плюс миллион других причин напрямую не связанных с экономиями памяти и вообще архитектурой.
например банальное разделение кода в античности когда про сабвершоны гиты и прочие тортойзы знали только древние гики
← →
Dimka Maslov © (2016-03-04 10:02) [13]1. Никогда.
2. Нет.
← →
megavoid © (2016-03-04 10:07) [14]Миллионы программ студии используют рантаймы, майкрософту приходится распространять библиотеки. Да даже интерпретатор PHP под windows не запускается без этого редиста, никто не мучается. К каждой версии студии свои дллки, разумеется есть версии 32, 64, встречаются и обновления в виде sp1 sp2 sp3. Можно мне возразить - дллки libc не то же самое, что и bpl - да, не то же самое, но суть одна - кому-то так удобней, кто-то пользуется.
← →
megavoid © (2016-03-04 10:08) [15]1 никогда
2 да
← →
Pavia © (2016-03-04 10:13) [16]Нет
В реальных нет. В качестве примера в статье Да.
← →
Rouse_ © (2016-03-04 21:04) [17]
> Германн © (04.03.16 00:24) [4]
> И какие?
Ну тут очень просто - если ты разрабатываешь хороший такой пакет приложений, то при использовании рантайма - ты сэкономишь достаточно солидный размер из-за того, что повторяющийся код будет вынесен.
Естественно это не 1-2 экзешника и пара библиотек, а начиная от десятка оных (грубо - комплекс).
Есть ли в этом смысл сейчас - не знаю, никогда этим не занимался и заниматься не буду.
Но видел такие продукты
← →
Rouse_ © (2016-03-04 21:07) [18]
> Юрий Зотов © (04.03.16 06:10) [11]
> Дело не только (и не столько) в размере. Плагинная архитектура
> - вот что просто и естественно реализуется через run-time
> пакеты.
Позволю себе возразить - BPL это самый простой способ убить хорошую идею с плагинами :)
← →
Германн © (2016-03-05 00:55) [19]
> Kerk © (04.03.16 02:36) [10]
>
> Да причем тут размер. DLL ведь не для уменьшения размеров
> придумали. А BPL - это те же DLL, но удобнее.
BPL - это те же DLL, но с одним существенным недостатком. Они зависят от версии Дельфи, на которой они созданы. И следовательно могут быть использованы только в ПО созданном на той же версии Дельфи.
Собственно я знаю только одну среду разработки, в которой активно использовались RT-библиотеки. Это Visual Basic. Лет надцать назад, когда моя дочка была ещё маленькой, а компьютер дома был только один, а игрушек написанных на Visual Basic в интернете предлагалось море, я видел на компе туеву хучу библиотек от разных версий Бэйсика.
← →
Eraser © (2016-03-05 01:00) [20]
> megavoid © (04.03.16 10:07) [14]
> никто не мучается.
спорное утверждение.
> К каждой версии студии свои дллки, разумеется есть версии
> 32, 64, встречаются и обновления в виде sp1 sp2 sp3.
это называется словом мрак. практически все более менее серьезные программы и игрушки тянут за собой эти RT библиотеки, это не нормально.
← →
Германн © (2016-03-05 01:07) [21]
> Rouse_ © (04.03.16 21:04) [17]
>
>
> > Германн © (04.03.16 00:24) [4]
> > И какие?
>
> Ну тут очень просто - если ты разрабатываешь хороший такой
> пакет приложений
Такой пакет приложений я разрабатывал для карбюраторных заводов России.
Только экономии особой я как-то и не заметил. Экономия в оперативке будет если одновременно буду работать много приложений из этого пакета. Чего у меня не было. Экономия на HD конечно будет всегда, но когда мы из раза в раз отвечаем на вопросы новичков о "!слишком большом" размере программы на Дельфи, как-то неестественно самому при этом экономить несколько десятков мегабайт.
← →
Германн © (2016-03-05 01:13) [22]Единственно в чём я не уверен - это отладка пакетов. Может быть разделение пакета на RT и DT пакеты помогает при отладке. Но вроде не помню, чтобы ЮЗ советовал мне такое разделение сто лет назад, когда я испытывал проблемы с отладкой своих первых пакетов.
← →
Юрий Зотов © (2016-03-05 11:46) [23]> Rouse_ © (04.03.16 21:07) [18]
> BPL это самый простой способ убить хорошую идею с плагинами
Интересная мысль. Пояснения будут?
> Германн © (05.03.16 01:13) [22]
> разделение пакета на RT и DT пакеты помогает при отладке
Разделение пакетов позволяет:
1. При компиляции без пакетов - не включать в EXE ресурсы, которые нужны только в DT (например, иконок компонентов).
2. При компиляции с пакетами - не таскать вместе с EXE пакетов, которые нужны только в DT.
← →
Rouse_ © (2016-03-05 12:56) [24]
> Юрий Зотов © (05.03.16 11:46) [23]
> > Rouse_ © (04.03.16 21:07) [18]
> > BPL это самый простой способ убить хорошую идею с плагинами
>
> Интересная мысль. Пояснения будут?
Конечно.
Плагин это то, что может добавить любой сторонний программист к нашему приложению (как правило посредством Plugin SDK), но раз уж рассматриваем BPL то:
1. Замечу - сторонний.
2. Замечу - не обязательно пишуший код на Delphi.
Теперь ситуация - допустим у нас есть приложение и к нему сторонними программерами написано 100 плагинов (мы их уговорили писать только на нашей версии Дельфи).
И вот мы переходим на новую версию и... и все эти плагины моментально отваливаются.
Наши действия? Обзванивать всех разработчиков плагинов и просить их тоже купить новую версию дельфи?
Действия пользователей?
← →
Rouse_ © (2016-03-05 14:04) [25]ЗЫ: вот к примеру один из вариантов наших плагинов, для подгрузки данных из сторонних форматов: http://ftp.grandsmeta.ru/grandsmeta/utils/gspluginsdk.rar
Достаточно просто и элегантно сделано, и заметь - никаких BPL :)
← →
DVM © (2016-03-05 14:31) [26]
> Rouse_ © (05.03.16 14:04) [25]
> ЗЫ: вот к примеру один из вариантов наших плагинов, для
> подгрузки данных из сторонних форматов:
А кто-нибудь, писал плагины на С++ или С по вашему SDK.
Мне кажется проблемы с выравниванием будут.
Например,
TPluginInfo объявлена как упакованная в PAS файле, в тоже время в H файле про упаковку или выравнивание ничего не сказано.
← →
Rouse_ © (2016-03-05 14:57) [27]Попробуй ее выровнять по другому :) 4 байта + 4 байта + 4 байта :)
← →
Rouse_ © (2016-03-05 15:00) [28]ЗЫ: и да, конечно писали и пишут - как правило ребята из IT отделов госструктур типа РусГидро, НорНикель и т.п.
← →
ВладОшин © (2016-03-05 15:19) [29]0
1
ps
ранее сами делали dll с пакетами, когда в отделениях по РФ были модемы на 14400 - хоть какой-то был шанс у них стянуть обновление.
Сначала туда отсылался комп полностью настроенный. потом они докачивали изменения. Потом так было, потому что так было всегда, что-то менять дорого становилось. Сейчас не используется, у всех интернет стал толстый, и таки и сделали как-то однажды монофайлно.
← →
Юрий Зотов © (2016-03-05 15:57) [30]> Плагин это то, что может добавить любой сторонний
> программист к нашему приложению
Слишком узко. Плагин - это то, что изменяет функционал приложения без его перекомпиляции. И пофиг, кто этот этот плагин написал.
← →
Rouse_ © (2016-03-05 16:08) [31]Полностью согласен, Юр, я именно об этом и написал :)
← →
DVM © (2016-03-05 16:17) [32]
> Rouse_ © (05.03.16 14:57) [27]
> Попробуй ее выровнять по другому :) 4 байта + 4 байта +
> 4 байта :)
В данном случае это просто везение. Я не конкретно об этой структуре.
Вы объявляете структуры packed в PAS файле, но не пишете #pragma pack в C. Это приведет к ошибкам рано или поздно, мое мнение.
← →
DVM © (2016-03-05 16:24) [33]
> Rouse_ ©
Плюс в сишном варианте используется int как эквивалент паскалевского integer.
Если за паскалевский вариант еще более-менее я могу ручаться, то ручаться за то, что int будет равен 4 байт нет. int32_t был бы значительно лучше в этом качестве.
← →
Rouse_ © (2016-03-05 16:28) [34]Приложение 32 бита, сложно собрать и подгрузить 64 битную библиотеку в 32 битное приложение.
Все работает и не первый год :)
← →
DVM © (2016-03-05 16:38) [35]
> Rouse_ © (05.03.16 16:28) [34]
> Приложение 32 бита, сложно собрать и подгрузить 64 битную
> библиотеку в 32 битное приложение.
Да я верю :)
Но разрядность тут не при чем. Компилятор при чем. Стандарт C89 требует лишь, что бы
sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
Про размер int (32 или 64 не говорится).
← →
Kilkennycat © (2016-03-05 16:43) [36]
> int32_t был бы значительно лучше в этом качестве.
ну дык когда размер имеет значение, так и пишут. Хотя мне влом, слишком многа буков.
← →
DVM © (2016-03-05 16:48) [37]
> Kilkennycat © (05.03.16 16:43) [36]
> ну дык когда размер имеет значение
В данном случае это API. А в API все имеет значение.
← →
Rouse_ © (2016-03-05 17:32) [38]Дим, ты не выпендривайся, ты пальцем покажи на пример кода, где с нашими заголовками прозойдет рассинхрон по выравниванию :)
А муколатуру я и сам читал, и в курсе о чем ты говоришь :)
← →
Юрий Зотов © (2016-03-05 19:01) [39]> Rouse_ © (05.03.16 16:08) [31]
Саш, проблема не в BPL, а в несовместимости версий Delphi на уровне откомпилированного кода.
← →
Rouse_ © (2016-03-05 19:32) [40]Юр, именно это я и сказал изначально :)
ЗЫ: вообще я думал что ты оветишь в плане: спили мушку :)
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.048 c