• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

минимизация исходников

nikolz

Well-known member
Есть такое правило в математике.
Чтобы доказать что теорема верна недостаточно и сотни примеров,
а чтобы доказать, что не верна - достаточно одного.
------------------------
Я же во втором своем пояснении объяснил, что исходники мне нужны для оптимизации кода для микроконтроллера.
----------------------------
Изначально весь проект сделан для ПК либо еще хуже для GPU.
------------------------
Но при переносе его на микроконтроллер многие функции просто не нужны от слова совсем.
-----------------------
Когда мы пишем для ПК то это всегда многопоточность и многозадачность.
На микроконтроллере этого нет.
--------------------------
Кроме этого нет надобности каждый раз освобождать занимаемую память для хранения данных,
--------------------
совсем другие средства вывода сигналов ну и т д.
----------------------
Кроме того, на ПК многие функции находятся в системных dll.
--------------------
В итоге исходный исполняемый файл для винды может быть и 100 Кбайт, но загрузится для выполнения все 100 Мбайт.
-------------------
Увы, решения нет, будет искать..
 

nikolz

Well-known member
К сожалению, все предложения изложенные выше посетителями темы являются не по теме.
--------------------
попробую объяснить еще раз в чем суть проблемы.
-----------------
Начну от печки.
===============
решение любой задачи цифровыми методами можно условно разделить на три этапа.
1) метод
2) алгоритм
3) исполняемый код.
---------------
Все о чем выше велись споры касается третьего этапа.
Т е беседы велись об оптимизации исполняемого кода.
Эта оптимизация делается компилятором и компоновщиком.
Причем последний делает это к конкретному железу.
---------------
Данная тема касается оптимизации на втором этапе.
Разработка алгоритма - это написание программы на языке программирования. Обычно это называют исходным кодом.
---------------------
Постановка задачи такая:
Имеем проект с открытым исходным кодом - т е есть текст программ.
Надо из этого проекта выбрать лишь то, что требуется для исполнения какой-либо части этого алгоритма.
--------------------
Т е компилятор и линкер на этом уровне отсутствуют, поэтому от них никакого толка нет.
Какие-либо библиотеки либо отсутствуют, либо надо делать их реинжиниринг в какой-нибудь язык программирования.
---------------
Мой вопрос в том, есть ли готовый софт для решения этой задачи,
т е выборка из проекта на языке программирования интересующей меня части алгоритма.
 

rst

Member
Данная тема касается оптимизации на втором этапе.
Разработка алгоритма - это написание программы на языке программирования. Обычно это называют исходным кодом.
Смешались в кучу люди, кони.... (c)
да уж... :confused:
"Разработка алгоритма" (как и его оптимизация) не требуют никакого языка программирования или тем паче - компилятора. Так как алгоритм разрабатывается (и оптимизируется) в голове разработчика. Причём - необязательно того же, который потом программу писать будет. А "написание программы" - это реализация алгоритма.
"Готовые исходники" - это уже реализованный кем-то алгоритм на данном языке программирования под данную платформу/операционное_откружение.
В крупных серьёзных программистких конторах, решающих сложные задачи (а не морганием лампочек), алгоритмисты - это часто отдельные люди, не занимающиеся собственно написанием какого-либо кода. А программисты там - совсем другие люди.
В более мелких - алгоритмистом как правило является сам программист. Который сперва должен придумать (нагуглить) алгоритм решения какой-либо задачи, а уж только потом - садиться за его реализацию (программинг).
Если же чел сразу садиться и программирует (без разработки и обдумывания алгоритма), то это - быдлокодер, а не программист.

Отделяйте мух от котлет!
 

nikolz

Well-known member
Смешались в кучу люди, кони.... (c)
да уж... :confused:
"Разработка алгоритма" (как и его оптимизация) не требуют никакого языка программирования или тем паче - компилятора. Так как алгоритм разрабатывается (и оптимизируется) в голове разработчика. Причём - необязательно того же, который потом программу писать будет. А "написание программы" - это реализация алгоритма.
"Готовые исходники" - это уже реализованный кем-то алгоритм на данном языке программирования под данную платформу/операционное_откружение.
В крупных серьёзных программистких конторах, решающих сложные задачи (а не морганием лампочек), алгоритмисты - это часто отдельные люди, не занимающиеся собственно написанием какого-либо кода. А программисты там - совсем другие люди.
В более мелких - алгоритмистом как правило является сам программист. Который сперва должен придумать (нагуглить) алгоритм решения какой-либо задачи, а уж только потом - садиться за его реализацию (программинг).
Если же чел сразу садиться и программирует (без разработки и обдумывания алгоритма), то это - быдлокодер, а не программист.

Отделяйте мух от котлет!
Вы правильно , своими словами, пересказываете учебники по структурному программированию.
Но , так как читать мысли мы пока не умеем, то до нас эти алгоритмы доходят в виде программ на языках программирования.
---------------
Более того, меня не колебет кто именно этот алгоритм разработал дядя Вася программист
или супер-пупер разработчик Пупкин.
-------------
Но Вы на форуме отметились, очевидно это и есть цель Вашего опуса.
 

rst

Member
Но Вы на форуме отметились, очевидно это и есть цель Вашего опуса.
Опус - это у вас в первом посте где перемешаны и "исходники" и "объектные библиотеки". А сейчас ещё до кучи и "алгоритмы" добавились. Знатная каша получилась! И чем дальше - тем наваристее! :cool:
 

nikolz

Well-known member
Опус - это у вас в первом посте где перемешаны и "исходники" и "объектные библиотеки". А сейчас ещё до кучи и "алгоритмы" добавились. Знатная каша получилась! И чем дальше - тем наваристее! :cool:
я вообще-то спросил конкретно о софте.
Если ничего не знаете, то нафига рассказывать байки о том как работают в "серьезных программистких конторах".
Очевидно, что вы там не работали.
Но можете и дальше трындеть очевидное, если очень чешется.
Но лучше не лезьте в мои темы.
 

enjoynering

Well-known member
rst, всё правильно говорит - теория у него на пять, а вот практика похоже хромает.

Он мне в соседней теме так и не ответил, когда предмет разговора чуть-чуть отошёл от академического определения.
 

pvvx

Активный участник сообщества
Опус - это у вас в первом посте где перемешаны и "исходники" и "объектные библиотеки". А сейчас ещё до кучи и "алгоритмы" добавились. Знатная каша получилась! И чем дальше - тем наваристее! :cool:
"исходники" и "объектные библиотеки" и "алгоритмы" - это и есть программа. Именно про это и был дан ответ - автоматической оптимизации такой каши ещё не создали.
 

pvvx

Активный участник сообщества
Если обратиться и к истории развития ESP, то по началу считалоcь, что никаких HTTP-WEB серверов в такой малой конфигурации создать невозможно. Но откинув всё ненужное это кое-как и с некими ограничениями удалось. С чего и стартануло. И это было произведено путем полного переписывания всех исходников и либ, а не путем линковщика или какой другой автоматической оптимизации.

Ныне пошло в обратную сторону – деоптимизацию с использованием массивных либ, содержащих к 90% ненужного кода и не поддающегося оптимизации линковщиком и другими средствами сборки.
 
все решил. тема закрыта.
Нет такого только руками.
Идем по шагам, зашли в функцию скопировали ее в файлик, зашли в другую функцию - ее тоже в файлик.. Так проходим весь нужный нам функционал либы. Потом пытаемся пройти тот-же путь в своем новом исходнике с подключенным тем самым файликом с функциями.Чистим утянутые функции от лишнего кода укрупняем их свою задачу (убирая бессмысленные межмодульные интерфейсы и прочую модную красоту)

Ныне пошло в обратную сторону – деоптимизацию с использованием массивных либ, содержащих к 90% ненужного кода и не поддающегося оптимизации линковщиком и другими средствами сборки.
Такой подход, на первый взгляд, позволяет сэкономить на разработчиках, многие инвесторы на это покупаются. Но это одна видимость из разряда "счас компьютер заменит нам бухгалтера" (с) 90-е года.
.
 

pvvx

Активный участник сообщества
Но это одна видимость из разряда "счас компьютер заменит нам бухгалтера" (с) 90-е года.
Поправочка - с датой ошиблись лет на 40 в плюс.
В 90-х уже стало ясно что "компьютер" ничего не заменили - в большинстве деятельности человечества сроки и окупаемость осталась на прежнем уровне, а кое-где и возросла.
Текущий, т.е. 2008 кризис так называемого "капитализма" произошел и из-за не окупившегося кредитования "кремниевой долины", а за ней пали и остальные...
 
Сверху Снизу