• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 кризис так называемого "капитализма" произошел и из-за не окупившегося кредитования "кремниевой долины", а за ней пали и остальные...
 
Сверху Снизу