|
COM‐пропагандист
|
||||||
Общие вопросы и приёмы эффективного программирования на BASIC27.03.2021, 15:34. Показов 36684. Ответов 391
Метки нет (Все метки)
Вот как создать кнопку:
0
|
||||||
| 27.03.2021, 15:34 | |
|
Ответы с готовыми решениями:
391
Общие вопросы по языку 1с Visual Basic Приемы взаимодействия Visual Basic и SQL Основные понятия и приемы программирования |
|
|
|||
| 05.04.2021, 14:19 | |||
|
0
|
|||
|
Модератор
|
|||||
| 05.04.2021, 14:26 | |||||
Добавлено через 6 минут
0
|
|||||
|
Кормпилятор
|
||
| 05.04.2021, 14:36 | ||
|
она априори неэффективна. Всегда толдычу только об одном, об архитектуре программы. Меня по большому счёту вся эта возьня с микронюансами не интересует настолько, чтобы утонуть в ней, потому что знаю простую вещь, что правильно построенная архитектура(а это нефиговый такой анализ) не даст проге работать как говно. Потому что в ней как раз и закладываются все эти будущие узкие места, где завести память, где освободить, что и где обсчитать. Как бы никогда не сяду прямолинейно кодить прогу потому что мол много мозгов и готов прошибать в прямом смысле стены. А на форуме дело больше в другом, ты вот даёшь людям на откуп дубину, которой они себя потом зашибут. Стек это реально НУ и очень тонкая работа. А какие-то строки им заводить, ну это не знаю. В задачах где реально там циклы и надо мелкими кусками заводить много, может и будет прирост, большие объёмы нужны чтобы этот прирост был ощутим, в реальных ситуациях такого нет и почти всегда можно обойтись хепом, понять где завести заранее, чтобы сразу все потребности накрыть. Т.е. как-бы аккуратно все эти штуки со стеком, а не так чтобы мол вот вам стек он работает быстрее и мол юзайте, да там неофиты такого нагородят, потом ещё из их голов это не вытравишь никак. да и как бы то что ты показал через тип - предполагаю в FB такое тоже есть, и пока он сам это пасёт мне вот честное слово пофигу, я понимаю что это не топовый компиль и скоростные характеристики меня устраивают.
0
|
||
|
COM‐пропагандист
|
||
| 05.04.2021, 14:43 [ТС] | ||
|
В отладочной версии у меня падает, там кто‐то другой теребит её rsp. Ссылка на гитхаб https://github.com/zamabuvaraeu/test (для x86 версии ставьте gcc)
0
|
||
|
COM‐пропагандист
|
|
| 05.04.2021, 14:51 [ТС] | |
|
На скриншоте код функции __alloca из библиотеки ГЦЦ.
0
|
|
|
Модератор
|
||||
| 05.04.2021, 15:06 | ||||
|
Вот мое оригинальное сообщение:
0
|
||||
|
Кормпилятор
|
||||
| 05.04.2021, 15:34 | ||||
|
когда писал текстурирование на ассемблере. Там было около 10 версий текстур +/-, на это было убито в общей сложности полтора года, даже больше. Это не сел и нахерачил за 5 минут пример, который показывает лишь базовый принцип и не показывает где зарыта собака. С тех пор много воды утекло, уже асм давно забросил, да и те навыки слабо под винду канают, ибо x64 уже во всю, со своими 15-ю регистрами. Дай мне тогда 15 толстенных 64 битных регистра, да я бы озверел с такой халявы. А в то время на портах например обычная горизониальная линия быстрее работала, пример - библиотека XLib для Паскаля. не может быть фиктивным, привык чувствовать эффективность, в прямом смысле слова. Т.е. если это 5% - то уже чувствую, но меня это не сильно волнует, если 10-15% - то как-бы на это обращу внимание, просто отложу в долгий ящик, а если 20-50% - то это делаю сразу. Что-то менее значимое чем 5%, мной даже не рассматривается, потому что архитектура, грамотный алгоритм и формализация совместно дают кратные прибавки и лучше потратить время на модернизирование этих характеристик, а технические кодерские нюансы дают лишь относительно небольшой прирост, ну если только это не SIMD или явные такие штуки типа табличной оптимизации, но это тоже скорее больше архитектура, просто в более мелком масштабе, на уровне конкретного алгоритма, конкретной функции.
0
|
||||
|
Модератор
|
||||
| 05.04.2021, 15:40 | ||||
|
0
|
||||
|
Кормпилятор
|
||
| 05.04.2021, 16:29 | ||
|
того как они решают вопрос долгосрочности таких выделений, потому что в моих реалиях, когда кодил, использовал стек для сохранения переменных внутри циклов, счётчиков и того что вытеснялось на время, т.е. было не нужным для обсчёта. Уже описал этот процесс, при котором "регистры все заняты" вроде бы должно быть понятно почему они заняты, причём, включая bp(ebp), и ситуация: ты внутри цикла, идёт заход в ещё цикл, cx надо сохранять, куда? Стек ты подвинул, положишь что-то сверху, ниже заведённое уже не ликвидировать, пока не вернёшься, возвращать указатель обратно тоже надо, иначе прога дальше вытащит не свои данные(адрес возврата например на ret) и придёт кирдык. А так то да, правил никаких, можно отдать ценнейший bp на адресацию и складывать регистры в любую доступную память(локальную или глобальную, первое проще когда пишешь машинные коды, второе, когда этим занимается компилятор). Так ли всё это мифично на самом деле?
0
|
||
|
Модератор
|
||
| 05.04.2021, 16:41 | ||
|
0
|
||
|
Кормпилятор
|
|||
| 05.04.2021, 21:26 | |||
|
даже на системе, где всей этой памяти копейки, о чём пишу и делюсь своими опытом с другими. Просто говорю, что не стал бы использовать это на каждый чих, в реале, в 99% случаев оно не даст никакой видимой выгоды, только в каких-то редких случаях. Со строками в тех кейзах, в которых их обычно используют - точно не даст. А разного рода геморроя может добавить порядком, особенно неопытным программистам, которые не знают с какой стороны к этому самому стеку подойти. До сих пор уверен, что ты не осознаёшь всю глубину проблемы, почему всё это пишу. Одно дело читать код, генеренный компилятором и совсем другое писать этот код самому. И когда BASIC программист увидит такой код, он будет долго ломать бошку, мол, зачем же его сделали, если там не будет комментария. Повторюсь, оптимизирую только тогда, когда это необходимо, т.е. когда есть явная в том потребность. Когда потребности нет в асм не лезу и не вижу смысла лезть. И типовой кейз - это алгоритмы, а не просто потому что кто-то посчитал, что строки работают недостаточно быстро и диалекты мол писали какие-то левые тюфяки, которые ни в зуб ногой. Всё там работает отлично. И если внезапно начинаются проблемы - это как раз первый звоночек и прямое свидетельство того, что архитектура проги сделана через задницу и не уделено внимание самому главному, это также означает, что если вовремя эту работу не переделать - проблем станет больше. Также знаю, что операция регистр регистр выполняется быстрее, чем регистр память. Во всяком случае так было раньше и с этим никто не спорил, это был серьёзный ресурс для оптимизации, наряду с выравниванием, с табличкой и другими, уже более сложными.
0
|
|||
|
Модератор
|
|||||
| 05.04.2021, 21:44 | |||||
|
0
|
|||||
|
COM‐пропагандист
|
||
| 06.04.2021, 12:35 [ТС] | ||
|
1. Память в стэке выделается одной командой процессора. 2. Память в куче — это вызов функции, где проверяются всякие списки, свободные места, происходит вход в критическую секцию и так далее. 3. Данные в стэке лежат прямо вместе с кодом и легко умещаются в кеш процессора. 4. Данные в куче лежат неизвестно по каким адресам, и чтобы до них добраться, процессору может потребоваться сбросить кеш. Есть есть ли ещё сомнения, почему куча априори неэффективна?
0
|
||
|
|
||||
| 06.04.2021, 12:41 | ||||
|
0
|
||||
|
COM‐пропагандист
|
|||
| 06.04.2021, 13:09 [ТС] | |||
0
|
|||
|
Модератор
|
|||||||||
| 06.04.2021, 13:19 | |||||||||
Не по теме: Pro_grammer, я бы еще эту тему вытащил на главную, там про виртуальную память интересная дискуссия. Как считаешь?
0
|
|||||||||
| 06.04.2021, 15:06 | |
|
0
|
|
| 06.04.2021, 15:06 | |
|
Стоит ли изучать как устроена ЭВМ для эффективного программирования Подскажите ссылки на приемы программирования для Embedded
Интересны приемы программирования, о которых не пишут в книгах, а которые узнаются на практике Общие вопросы. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|