Следующий шаг - проверка скорости передачи с аппаратными spinlock'ами...
Программистские задачки и хитрости
- MX_Master
 - Мастер
 - Сообщения: 7488
 - Зарегистрирован: 27 июн 2015, 19:45
 - Репутация: 3113
 - Настоящее имя: Михаил
 - Откуда: Алматы
 - Контактная информация:
 
Re: Программистские задачки и хитрости
Ну что, товарищи 
 механизм общей памяти с программными spinlock'ами таки обогнал по скорости систему двунаправленного буфера. Самый увесистый кусок кода удерживает общую память не дольше 2-3 микросекунд. В системе сообщений (два буфера) аналогичный обмен данными мог занимать десятки микросекунд.
Следующий шаг - проверка скорости передачи с аппаратными spinlock'ами...
			
			
									
									
						Следующий шаг - проверка скорости передачи с аппаратными spinlock'ами...
- 
				Duhas
 - Мастер
 - Сообщения: 1961
 - Зарегистрирован: 10 окт 2015, 23:25
 - Репутация: 285
 - Настоящее имя: Андрей
 - Откуда: Красноярск
 - Контактная информация:
 
Re: Программистские задачки и хитрости
ежели объем тот же - что-то ой разница. я думаю большой вопрос в корректности реализации или еще каких нюансах.
			
			
									
									
						- MX_Master
 - Мастер
 - Сообщения: 7488
 - Зарегистрирован: 27 июн 2015, 19:45
 - Репутация: 3113
 - Настоящее имя: Михаил
 - Откуда: Алматы
 - Контактная информация:
 
Re: Программистские задачки и хитрости
Вощём, с аппаратными spinlock'ами ещё быстрее на 200-300 нсек. Что ожидаемо 
 
 

			
			
									
									
						Система сообщений (2 буфера) даже в теории имеет больше накладных расходов. Просто, за счёт двойного копирования данных. Сначала в буфер, а потом из него по конкретным местам. Накладывается ещё и поиск непрочитанных сообщений. Ну и кривая реализация от автора тоже добавляет накладныхDuhas писал(а):ежели объем тот же - что-то ой разница. я думаю большой вопрос в корректности реализации или еще каких нюансах.
- 
				Duhas
 - Мастер
 - Сообщения: 1961
 - Зарегистрирован: 10 окт 2015, 23:25
 - Репутация: 285
 - Настоящее имя: Андрей
 - Откуда: Красноярск
 - Контактная информация:
 
Re: Программистские задачки и хитрости
дык оно происходит в разных процессах ) 
хотя вопрос как там доступ к памяти реализован и т.д. ну если все хорошо, то все хорошо )
			
			
									
									
						хотя вопрос как там доступ к памяти реализован и т.д. ну если все хорошо, то все хорошо )
- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Программистские задачки и хитрости
Кто в теме IP: почему работает? 
			
			
									
									Код: Выделить всё
$ ping -c 5 192.168.1.555
...
--- 192.168.1.555 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4128ms
rtt min/avg/max/mdev = 0.214/0.294/0.334/0.042 ms
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
						- 
				Duhas
 - Мастер
 - Сообщения: 1961
 - Зарегистрирован: 10 окт 2015, 23:25
 - Репутация: 285
 - Настоящее имя: Андрей
 - Откуда: Красноярск
 - Контактная информация:
 
Re: Программистские задачки и хитрости
переполнение байтовой переменной?
			
			
									
									
						- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Программистские задачки и хитрости
Нет. IPv4 адрес - это uint32_t практически во всех реализациях.Duhas писал(а):переполнение байтовой переменной?
Надо ширше мыслить!
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
						- 
				Duhas
 - Мастер
 - Сообщения: 1961
 - Зарегистрирован: 10 окт 2015, 23:25
 - Репутация: 285
 - Настоящее имя: Андрей
 - Откуда: Красноярск
 - Контактная информация:
 
Re: Программистские задачки и хитрости
ну я в кишки не заглядывал даже ) так пальцем в небо, 
шо, резолвится в 192,168,3,43?
			
			
									
									
						шо, резолвится в 192,168,3,43?
- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Программистские задачки и хитрости
Нет. Адрес в сети 192.168.1.0/24 
Задачка не совсем про программирование, а про IP и на сообразительность, просто более подходящей темы нет.
С другой стороны программист, мыслящий стандартами - так себе программист, скорее просто кодер.
			
			
									
									Задачка не совсем про программирование, а про IP и на сообразительность, просто более подходящей темы нет.
С другой стороны программист, мыслящий стандартами - так себе программист, скорее просто кодер.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
						- wldev
 - Мастер
 - Сообщения: 1650
 - Зарегистрирован: 24 янв 2012, 16:04
 - Репутация: 510
 - Настоящее имя: Сергей Бочаров
 - Откуда: Новосибирск
 - Контактная информация:
 
Re: Программистские задачки и хитрости
Адрес 192.168.1.138
1000101011-555
10001010-138
Префикс 24бита.
Далее отбрасывается 2бита.
			
			
									
									
						1000101011-555
10001010-138
Префикс 24бита.
Далее отбрасывается 2бита.
- merkwurdigliebe
 - Мастер
 - Сообщения: 609
 - Зарегистрирован: 17 дек 2013, 22:14
 - Репутация: 580
 - Откуда: București
 - Контактная информация:
 
Re: Программистские задачки и хитрости
echo 127.0.0.1 192.168.1.555 >>/etc/hostsUAVpilot писал(а):почему работает?
- 
				nevkon
 - Почётный участник

 - Сообщения: 2471
 - Зарегистрирован: 17 июл 2015, 10:25
 - Репутация: 310
 - Настоящее имя: Константин
 - Откуда: Балаково (Саратовская обл.)
 - Контактная информация:
 
Re: Программистские задачки и хитрости
Оно не обязательно должно быть где-то объявлено. Помню было на обучении, но в чем прикол уже не помню.
			
			
									
									
						- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Программистские задачки и хитрости
merkwurdigliebe писал(а):echo 127.0.0.1 192.168.1.555 >>/etc/hosts
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
						- 
				Duhas
 - Мастер
 - Сообщения: 1961
 - Зарегистрирован: 10 окт 2015, 23:25
 - Репутация: 285
 - Настоящее имя: Андрей
 - Откуда: Красноярск
 - Контактная информация:
 
Re: Программистские задачки и хитрости
сложно назвать задачкой, однако:
пишу библиотечку для дисплея, хочу выводить или не выводить лидирующие нули: "030" или " 30"
для этой задачи в классе дисплея заведена переменная uint8_t _leadingZeroes.
она инициализирована нулем в конструкторе и имеет функцию для доступа элементарного вида:
void HD44780::LeadingZeroes(uint8_t on)
{
_leadingZeroes = on;
}
А вот дальше начинается интересное, в процессе написания было поймано интересное поведение компилятора если из него вырезать последний else
получается на другую переменную в условии реагирует нормально, собственно не знаю зачем тут это, просто не понимаю чего собственно может не нравится
ПС Atmel Studio 7, AVR8/GNU C Compiler : 5.4.0
			
			
									
									
						пишу библиотечку для дисплея, хочу выводить или не выводить лидирующие нули: "030" или " 30"
для этой задачи в классе дисплея заведена переменная uint8_t _leadingZeroes.
она инициализирована нулем в конструкторе и имеет функцию для доступа элементарного вида:
void HD44780::LeadingZeroes(uint8_t on)
{
_leadingZeroes = on;
}
А вот дальше начинается интересное, в процессе написания было поймано интересное поведение компилятора если из него вырезать последний else
получается на другую переменную в условии реагирует нормально, собственно не знаю зачем тут это, просто не понимаю чего собственно может не нравится
ПС Atmel Studio 7, AVR8/GNU C Compiler : 5.4.0
- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Программистские задачки и хитрости
Ничёго не понял:
Какой именно "else"? Покажи вариант с ним и без него.
На какую именно переменную, в куске кода их две.
Строка 407 - это какая именно?
Значение у "on" какое?
И почему-бы не упростить до такого?
P.S. Используй теги [code] [/code]
			
			
									
									Какой именно "else"? Покажи вариант с ним и без него.
На какую именно переменную, в куске кода их две.
Строка 407 - это какая именно?
Значение у "on" какое?
И почему-бы не упростить до такого?
Код: Выделить всё
if (Ts || !_leadingZeroes)
    Send_Data(Ts+0x30)
else
    Send_Data(' ');
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
						- 
				calabr
 - Мастер
 - Сообщения: 937
 - Зарегистрирован: 04 янв 2019, 15:19
 - Репутация: 146
 - Настоящее имя: Calabr
 - Откуда: Киев
 - Контактная информация:
 
Re: Программистские задачки и хитрости
Вот более близкое к AVR описание проблемы:
https://www.avrfreaks.net/forum/error-r ... ncated-fit
Думаю нужно поиграться с опциями линкера -relax, -no-relax,
Поменять порядок объявлнгия переменных в коде...
- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Программистские задачки и хитрости
Порядок объявления переменных тут скорее всего не при чем - по твоей-же ссылке есть объяснение. 
Нужно больше подробностей, особенно с вариантами экспериментов и полный текст самой функции SendNumber. А ещё лучше ассемблерный код, который получается (avr-gcc -S).
Странно, что сам компилятор с этим сам не справляется, хотя его версия довольно древняя. По любому полный текст функции нужен.
			
			
									
									Нужно больше подробностей, особенно с вариантами экспериментов и полный текст самой функции SendNumber. А ещё лучше ассемблерный код, который получается (avr-gcc -S).
Странно, что сам компилятор с этим сам не справляется, хотя его версия довольно древняя. По любому полный текст функции нужен.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
						- 
				kochevnik
 - Мастер
 - Сообщения: 227
 - Зарегистрирован: 13 окт 2013, 16:24
 - Репутация: 9
 - Контактная информация:
 
Re: Программистские задачки и хитрости
Может кто с esp32 играется?
Столкнулся с проблемой загрузки файлов через веб интерфейс, даже дефолтный пример глючит, если в файле пара строк текста и в конце три дефиса "---"
Может кто сталкивался и как то решили?
			
			
									
									
						Столкнулся с проблемой загрузки файлов через веб интерфейс, даже дефолтный пример глючит, если в файле пара строк текста и в конце три дефиса "---"
Может кто сталкивался и как то решили?