![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Предложение отказаться от ASM версии
Yury Sidorov © (2007-09-14 13:39:00)Моя ветка KOL-CE уже достаточно стабильна и в ближайшем будущем хотелось бы объединить мою и основную ветки. Кроме портирования под Lazarus и wince мной было сделано много исправлений и улучшений (например, скорость ScrollBox-а).
Но объединению мешает ASM версия, которую я у себя совсем не трогал. Т.е. PAS версия абсолютно рассинхронизирована с ASM версией, которая для FPC не используется вообще.
Плюсы ASM версии:
1. Экономия нексольких килобайт кода, но это актуально только для программ типа Hello world.
Минусы:
1. Трудно поддерживать асм и пас версии одновременно. Даже Владимиру Кладову.
2. Иногда асм и пас версии процедур работают по разному. Т.е. вероятность глюков удваивается.
3. У большинства пользователей KOL нет знаний или желания править асм версию.
4. Асм версия не применима для платформы arm-wince.
5. Асм версия не используется в FPC.
6. Асм версия почти не используетя для UNICODE.
Поэтому я предлагаю Владимиру Кладову принять волевое решение и отказаться от ASM версии, начиная с какой-то версии KOL.
Если будет реальная необходимость в экономии нескольких дополнительных килобайт кода в какой-то программе, то всегда можно использовать последнюю версию KOL с поддержкой ASM версии для компиляции этой программы.
Yury Sidorov (2007-09-18 11:39:00) [21]D[u]fa: На данный момент KOL-CE и является тем, что будет после возможного объединения с основной веткой, т.к. по мере выхода новых версий KOL, я произвожу слияние изменений с основной веткой. KOL-CE в данный момент не использует асм версию и не предназначен для такого использования. И, как я уже писал:
я кое-что исправил/улучшил в пас версии и у меня нет желания делать то же самое в асм версии, т.к. я ее не использую. Поэтому если включить асм версию для KOL-CE и скомпилить под Дельфи, то работать будет все не так или вообще не будет работать.
Таким образом имеем разную функциональность в асм и пас версиях...
misha_shar: Хоть кто-то поддерживает :)
misha_shar (2007-09-18 10:31:00) [22]Я тоже считаю что в большенстве случаев ASM ненужен. Трудоемкость сопровождения двух версий высокая а преимущество сомнительно. Я думаю что использование ASM оправдано только в отдельных вспомогательных программках их и написать полностью на ASM. А в Controlах и там где ASM версия не дает существенного прироста скорости использовать ASM никакого смысла нет.
D[u]fa (2007-09-18 09:11:00) [23]Yury Sidorov, а нельзя просто для KOL-Ce оставить пас версию и просто не юзать асм версию? в обычном коле буит две версии, а в СЕ тока пас... не пойму зачем все всех на пас перекидывать
SPeller (work) (2007-09-18 04:04:00) [24]
> а с какой такой радости ВСЕ пользователи должны получить
> даже один лишний байт кода ???
С такой же, с какой получают ненужный блокнот с виндой. Потому что всем не угодишь.
SPeller (work) (2007-09-18 03:46:00) [25]Да, но wince?
Galkov (2007-09-17 23:18:00) [26]Существуют два разных подхода к разработке.
Они отличаются на уровне воспитания и философии - поэтому, никто никого ни в чем не убедит.
Дай бог нам хотя бы просто понять друг друга :)
Первый: делается "разовое изделие", и во главу угла, именно по этой причине - ставится скорость разработки. При этом подходе, качество изделия, как правило, игнорируется. Лишь бы выполнялись показатели функционирования.
Второй: делается "многократно воспроизводимое изделие". В таких случаях затраты на разработку неизмеримо малы в сравнении с суммарными затратами "на изготовление". В случае программирования, это видимо должны быть - суммарные затраты всех пользователей данного продукта.
Вот собственно и все. Просто следует понимать чего ты делаешь.
Мне скажем, показалось, что тот день затрат на ASM версию для Align - ничего не стоит по сравнению с затратами ВСЕХ пользователей KOL, которые будут иметь 1K кодов вместо 600 байт.
Поэтому взял, и сделал...
Ну или по другому.
В первомварианте имеет смысл вопрос: а надо ли кому-то этот выигриш в 400 байт ???
А во второмглавный совершенно другой вопрос: а с какой такой радости ВСЕ пользователи должны получить даже один лишний байт кода ??? Или целых 3 тика проца потерь в быстродействии ??? И рассуждения о том, что это "совсем немножко" - просто неуместны в таком подходе.
Thaddy (2007-09-17 23:03:00) [27]It adds a lot of code,,,,
And It can already be used with KOL
GMax (2007-09-17 22:28:00) [28]fastlib именно так и работает
Vladimir Kladov (2007-09-17 21:48:00) [29]Воспользоваться мало. Необходимо воспользоваться так, чтобы любой код, использующий вызов Move (и со ссылкой на kol.pas в uses) автоматически перенаправлялся на этот вариант move.
exero (2007-09-17 21:19:00) [30]Владимир, если Вас интересует скорость, то вопользуйтесь FastMM4 и FastMove. FastMove использует MMX, SSE, SSE2, SSE3 оптимизацию, в зависимости от процессора. Результат получится несколько более тяжелый, но скрость возрастет.
Thaddy (2007-09-17 20:46:00) [31]I propose something different:
In some ways I agree with Yuri, In some ways with Vlamidimr.
But there is a solution that I use myself for sometime internally:
I create "clean" versions by using the dipp.exe preprocessor to create the versions I want. I suggest a development tree is made:
-- kol main branch
|--Kol pascal branch //generated with DIPP
|-- kol pas barnch for FPC (with a diff/merge)
|-- kol pas branch for kolce (with a diff/merge)
That would mean maintainabilty for everyone.
Vladimir Kladov (2007-09-17 20:42:00) [32]А я буду добавлять новые вещи на ассемблере. Меня интересует сейчас даже не компактность, а скорость. Я вот сделал сегодня заменитель для системной процедуры move, с оптимизацией на mmx. Дает 2-3% прироста скорости на смешанном тесте. И то хлеб. Иногда процентов не хватает, чтобы в кадр уложиться.
SPeller (2007-09-15 06:17:00) [33]Предлагаю не писать новые изменения в асм, и постепенно выкидывать тот асм-код, который перестает соответствовать пас-коду. И Юрий будет доволен, дав КОЛ поддержку win-ce, и homm и другие принципиальные поклонники асма тоже не будут ущемлены. Захотят оставить больше асм-кода - переведут изменения в асм и пришлют Владимиру.
homm (2007-09-14 23:30:00) [34]> ASM код и так почти весь в отдельном файле, а слиянию мешает
> рассинхронизация текущего PAS кода в KOL-CE с ASM кодом.
Чем она тебе мешает???
Yury Sidorov (2007-09-14 22:57:00) [35]ASM код и так почти весь в отдельном файле, а слиянию мешает рассинхронизациятекущего PAS кода в KOL-CE с ASM кодом. Другими словами я менял только PAS код, а ASM код остался без изменений. Все.
ANTPro (2007-09-14 19:45:00) [36]> [10] Yury Sidorov (14.09.07 15:40)
> По моему мнению, асм версия в таком объеме как сейчас мешает развитию.
Совсем не ASM версия мешает развитию.
> [10] Yury Sidorov (14.09.07 15:40)
> Как ни печально, но судя по реакции на мое предложение,
> KOL-CE навсегда останется отдельной веткой
Что мешает вынести весь Win32ASM в отдельный файл, а в КОЛ сделать пару больших {$ifdef}?
Galkov (2007-09-14 16:08:00) [37]
> На остальные вопросы ответы можно найти выше
Не нашел.
> Все-таки непонятно: кто мешает обложить изменения, не сопровождаемые в ASM, условной компиляцией ???
Yury Sidorov (2007-09-14 15:56:00) [38]
> > Думаю, Владимир, в этом убедился (убедится) разрабатывая
> свою зумер.
>
> Ты в серьез считаешь, что это првый/самый крупный проект
> Владимира? :))))
Я думаю это первый крупный проект, который используется большим количеством пользоваетелей на разных компах и где вероятность проявления различных глюков очень повышается.
На остальные вопросы ответы можно найти выше. Разводить флуд не буду...
homm (2007-09-14 15:49:00) [39]> Думаю, Владимир, в этом убедился (убедится) разрабатывая свою зумер.
Ты в серьез считаешь, что это првый/самый крупный проект Владимира? :))))
> KOL-CE навсегда останется отдельной веткой :(
И что припятствует его все-же попытаться объеденить? Религия, запрещающая находиться ASM коду, в модуле, над которым ты работаешь?
> Да, асм код уже есть, но его нужно сопровождать и тянуть
> за собой дальше...
Сопровождать? Писать документацию, или объяснять ка он работает? Тянуть? Из интернета что-ли скачивать? Остальный аргументы исскли, остались громкие фразы, за которыми ничего нет?
Yury Sidorov (2007-09-14 15:41:00) [40]homm: Да, асм код уже есть, но его нужно сопровождать и тянуть за собой дальше...