реклама на сайте
подробности

 
 
> Много мелких функций или одна большая?
GYUR22
сообщение Feb 11 2011, 12:39
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 16-02-09
Пользователь №: 44 931



Есть одна большая функция в программе - которую можно поделить на много мелких ...
Вопрос как выгоднее по скорости исполнения - разделить ее на 18 мелких (по смыслу) или оставить как есть?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GYUR22
сообщение Feb 14 2011, 20:22
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 16-02-09
Пользователь №: 44 931



честно говоря не собирался никого мучить, даже тема была другая
просто возникший в процессе вопрос нов и непонятен - и как показало общественное мнение результат негарантирован.

имхо:
Результат в моем случае проверить сложно т.к. размер кода - будет один и тотже -функции используются по разу
а скорость отклика - уарта мне точно померять пока не представляется возможным - точность +/- 1 ms уже не устроит

а вот результат по разбиению исполнения массива данных - был виден и дал выигрыш как раз ~1ms - спасибо за наводку

Всем спасибо дальше как говориться куда кривая выведет sm.gif
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 17 2011, 14:44
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(GYUR22 @ Feb 14 2011, 22:22) *
имхо:
Результат в моем случае проверить сложно т.к. размер кода - будет один и тотже -функции используются по разу
а скорость отклика - уарта мне точно померять пока не представляется возможным - точность +/- 1 ms уже не устроит

Ну так забейте на inline если оно настолько некритично для вашего проекта.
Кстати inline'нинье функций далеко не гарантия наиболее высокой скорости исполнения. Например, в процессорах с кеш памятью команд - бездумное инлайнинье там и сям приведет только к замедлению за счет раздувания кода при константном объеме кеш памяти.

Цитата(demiurg_spb @ Feb 15 2011, 19:43) *
Если разить вашу теорию, то и данные предназначенные для помещения в секции EEPROM (это при помощи атрибутов в gcc происходит) ИНОГДА могут оказаться в другой секции.
Это абсурд!

обилие прагм и атрибутов в проекте - это говнокод, а не абсурд, и - кстати таки да данные могут оказаться совсем не в той секции где ожидаешь, при переносе такого проекта на другой проц.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Feb 17 2011, 19:18
Сообщение #4


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(defunct @ Feb 17 2011, 17:44) *
Ну так забейте на inline если оно настолько некритично для вашего проекта.
Кстати inline'нинье функций далеко не гарантия наиболее высокой скорости исполнения. Например, в процессорах с кеш памятью команд - бездумное инлайнинье там и сям приведет только к замедлению за счет раздувания кода при константном объеме кеш памяти.
обилие прагм и атрибутов в проекте - это говнокод, а не абсурд,
Идеологически согласен.
Кстати, Вы видели в моём примере много прагм и атрибутов?
Человек спросил как это сделать - я дал однозначный рецепт.
Потом сюда приплели даже микрософтовский компилятор и кеш инструкций, хотя тема находится в подфоруме микроконтроллеры/AVR
и вопрос касался avr-gcc...

Цитата
и - кстати таки да данные могут оказаться совсем не в той секции где ожидаешь, при переносе такого проекта на другой проц.
Какие Ваши предложения на сей счёт? Отказаться от использования PROGMEM, EEMEM, ISR и вообще не включать компьютер?
Атрибуты в gcc - это почти что основополагающий механизм в случае кросс-компиляции для avr.
Если Вы внимательно читали мои посты, то могли бы подметить, что я рекомендовал оставить лишь квалификатор static, ибо это и необходимо и достаточно для локальных функций.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- GYUR22   Много мелких функций или одна большая?   Feb 11 2011, 12:39
- - Сергей Борщ   Если мелкие сделать принудительно встраиваемыми - ...   Feb 11 2011, 12:46
|- - MrYuran   Цитата(Сергей Борщ @ Feb 11 2011, 15:46) ...   Feb 11 2011, 12:56
|- - demiurg_spb   Цитата(Сергей Борщ @ Feb 11 2011, 15:46) ...   Feb 12 2011, 07:53
- - GYUR22   Эээ про Idle можно поподробнее? ps эта функция ис...   Feb 11 2011, 13:20
|- - MrYuran   Цитата(GYUR22 @ Feb 11 2011, 16:20) Эээ п...   Feb 11 2011, 13:46
- - GYUR22   богатая идея... надо обмуслить... тока общаяя схем...   Feb 11 2011, 13:52
|- - MrYuran   Цитата(GYUR22 @ Feb 11 2011, 16:52) тока ...   Feb 11 2011, 14:19
|- - _Pasha   Цитата(MrYuran @ Feb 11 2011, 17:19) Вот ...   Feb 11 2011, 15:51
|- - MrYuran   Цитата(_Pasha @ Feb 11 2011, 18:51) И гд...   Feb 14 2011, 11:36
- - GYUR22   размер кода пока не пугает ... оперативки уже мало...   Feb 12 2011, 09:40
|- - _Pasha   Цитата(GYUR22 @ Feb 12 2011, 13:40) но ес...   Feb 12 2011, 10:15
|- - demiurg_spb   Цитата(GYUR22 @ Feb 12 2011, 12:40) разме...   Feb 12 2011, 14:03
- - GYUR22   static inline - не компилируется... пишет что лин...   Feb 14 2011, 11:16
- - alexeyv   Цитатаstatic inline - не компилируется... 1. stat...   Feb 14 2011, 11:25
- - GYUR22   еще раз для тупого... чем лучше static inline по с...   Feb 14 2011, 12:28
|- - MrYuran   Цитата(GYUR22 @ Feb 14 2011, 15:28) чем л...   Feb 14 2011, 12:51
- - GYUR22   меня интересует встроится ли код или нет если оста...   Feb 14 2011, 13:56
|- - demiurg_spb   Цитата(GYUR22 @ Feb 14 2011, 16:56) меня ...   Feb 14 2011, 15:47
|- - sergeeff   Цитата(demiurg_spb @ Feb 14 2011, 18:47) ...   Feb 14 2011, 17:19
|- - demiurg_spb   Цитата(sergeeff @ Feb 14 2011, 20:19) В о...   Feb 15 2011, 17:43
|- - sergeeff   Цитата(demiurg_spb @ Feb 15 2011, 20:43) ...   Feb 15 2011, 18:26
|- - Petka   Цитата(sergeeff @ Feb 15 2011, 21:26) Пос...   Feb 15 2011, 18:48
|- - sergeeff   Цитата(Petka @ Feb 15 2011, 21:48) У микр...   Feb 15 2011, 20:27
- - _Pasha   Цитата(MrYuran @ Feb 14 2011, 15:51) Есть...   Feb 14 2011, 14:09
- - GYUR22   C++, C99, and GNU C each have support for inline f...   Feb 14 2011, 17:27
- - _Pasha   Цитата(GYUR22 @ Feb 14 2011, 21:27) выдер...   Feb 14 2011, 20:02
|- - sergeeff   Цитата(GYUR22 @ Feb 14 2011, 23:22) Всем ...   Feb 14 2011, 20:54
|- - sergeeff   Цитата(demiurg_spb @ Feb 17 2011, 22:18) ...   Feb 17 2011, 20:31
|- - demiurg_spb   Повторюсь, я говорю о avr-gcc и о контроллерах в к...   Feb 18 2011, 09:21
|- - sergeeff   Цитата(demiurg_spb @ Feb 18 2011, 12:21) ...   Feb 18 2011, 13:29
|- - demiurg_spb   В gcc, да и думаю во всех современных компиляторах...   Feb 18 2011, 20:10
- - alexeyv   Цитатачем лучше static inline по сравнению с прост...   Feb 15 2011, 04:56
- - dxp   Само указание ключевого слова inline в декларации ...   Feb 16 2011, 06:42
- - _Pasha   Что характерно - чем вопрос элементарнее, тем диск...   Feb 16 2011, 06:54
|- - dxp   Цитата(_Pasha @ Feb 16 2011, 12:54) Что х...   Feb 16 2011, 08:55
- - sergeeff   Про все современные компиляторы, как выше упоминал...   Feb 18 2011, 22:50
|- - _Pasha   Цитата(sergeeff @ Feb 19 2011, 02:50) хор...   Feb 19 2011, 05:01
|- - demiurg_spb   Цитата(sergeeff @ Feb 19 2011, 01:50) А р...   Feb 19 2011, 09:02
|- - sergeeff   Цитата(demiurg_spb @ Feb 19 2011, 12:02) ...   Feb 19 2011, 10:11
|- - _Pasha   Цитата(sergeeff @ Feb 19 2011, 14:11) Он,...   Feb 19 2011, 13:33
- - andron86   Цитата(GYUR22 @ Feb 11 2011, 13:39) Есть ...   Feb 19 2011, 06:09


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 23:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.02606 секунд с 7
ELECTRONIX ©2004-2016