|
COM‐пропагандист
|
||||||
Общие вопросы и приёмы эффективного программирования на BASIC27.03.2021, 15:34. Показов 36197. Ответов 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
Интересны приемы программирования, о которых не пишут в книгах, а которые узнаются на практике Общие вопросы. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли
Введение: Экологический рынок как игра с нулевой суммой
Традиционная экология долгое время. . .
|
|
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ
Введение: Синдром «цифрового учебника»
Современные большие языковые модели (LLM) обладают колоссальным. . .
|
Главный вопрос моделирования сукцессии
anaschu 27.06.2026
главный вопрос.
Если эктомикориза лучше добывает недоступный фосфор. И ее масса максимальна из всех.
А широколиственный лес тоже имеет самую крутую биомассу.
То почему не возникло их симбиоза? Это. . .
|
сукцессия 6. Питон реализация энилоджиковской модели, картинка про Центральную часть будущей модели
anaschu 26.06.2026
Етить. ИИ мне на основе моего старого файла R создал вот эту вот хмерь на пайтоне.
Это уже новая модель, модель сукцессии грибной.
потоки фосфора, азота. Углерода.
5 видов организмов.
Я даже. . .
|
Как замкнутый ядерный цикл решит проблему недостатки фосфора? Био миграция фосфора со дна океана
anaschu 26.06.2026
Биологический лифт: Концепция подъема фосфора со дна океана с помощью ЗЯТЦ
Предлагаю на обсуждение альтернативу тяжелому промышленному бурению океанического дна. Вместо сложной инженерии мы можем. . .
|