|
COM‐пропагандист
|
||||||
Общие вопросы и приёмы эффективного программирования на BASIC27.03.2021, 15:34. Показов 39523. Ответов 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
Интересны приемы программирования, о которых не пишут в книгах, а которые узнаются на практике Общие вопросы. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|