- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
#include <http://govnokod.ru/21585>
// assembly output for f1_signed and f2_signed on GCC 7,6,5 ... versions are same
signed char f1_signed(signed char a1, signed char a2, signed char a3)
{
return MAXS(a1,a2,a3,a1,a2,a3);
}
signed char f2_signed(signed char a1, signed char a2, signed char a3)
{
return MAXS(a1,a2,a3);
}
// assembly output for f1_unsigned and f2_unsigned on GCC 7,6,5 ... versions are differend
// GCC compiler can't do same simplification for unsigned function
// This function produces much more assembler code than second
unsigned char f1_unsigned(unsigned char a1, unsigned char a2, unsigned char a3)
{
return MAXS(a1,a2,a3,a1,a2,a3);
}
unsigned char f2_unsigned(unsigned char a1, unsigned char a2, unsigned char a3)
{
return MAXS(a1,a2,a3);
}
А ЧТО, ТАК МОЖНО?
В браузерах такие инклюды срабатывают чуть менее, чем при каждом исполнении программы, а в сишке бы срабатывали чуть менее, чем при каждой компиляции, предлагая пользователю ту же самую скомпилированную программу, что и раньше.
1. Можно заранее пройтись по всем файлам, скачать и закэшировать перед компиляцией (заодно *.c и *.lib куда надо положить)
2. На сервере выкладывать файл состояния, содержащий либо DOWN (идёт обновление), либо UP <unique ID> (сайт работает), содержимое которого проверять на клиенте до и после скачивания всего. Такие файлы можно и вручную создавать.
3. Если и этого не хватит, пакеты складывать в *.zip (соответственно, include <http://..../fastsring.zip/string.h> и ясное знание о том, какие каталоги с какими *.c/*.lib куда распаковать). По крайней мере, в компиляторе организовать поддержку таких пакетов.
спойлер: на ней компилеры (кроме гсс) лажаются еще хуже.
Почему бы не закешировать в переменную максимум от хвоста и сравнить голову с ним? Получится няшно и линейно.
Вариант в ФП стиле я выше предложил. Его по-любому все конпеляторы смогут осилить ;)
но ведь "герои не ищут лёгких путей!" :)
>>У нас в MZ — есть. Компания зарабатывает несколько миллионов долларов в день. А в вашем НИИГиТ наверняка нет ни >>таких средств, ни таких требований к производительности, которые бы требовали кластер
так и хочется добавить "потому делайте дальше свои сайты-визитки в дримвивире и не выябывайтесь"
ЗЫ я думал в сторону constexpr, как type-safe дефайны. я только после того как сплагиатил с SOнаписал код "заметил" что ты с переменными трахаешься, и это просто тупая экзотика и жуткий частный случай, где все нормальные люди напишут `?:` и забьют.
ну а если бы писал на плейнсях то первым аргумнетом был бы поинтер на структуру, и в моей колконвенции тот же самый регистр бы и занимал.
что не так?
или его копелятор мог бы переложить ?
систематических тестов я не делал.
недавно делал лобовую конверсию нескольких методов из обычных в статические, и заметил что у обоих IAR и гцц (на медиум/Оs) код получился меньше.
про наезды микро-контроллерщиков на кресты и this я слышал раньше, но это был первый раз когда я лично увидел разницу своими глазами. разница у меня была небольшая - выхлоп дизасма у самой большой функции был где-то 80 инструкций - но на ~3-5 инструкций стала короче.
ЗЫ что конечно просто мелочи по сравнению с последствиями "хорошего дезайна". а попробуй найди нового разраба для крестов, который тебе *не* будет на все подряд интерфейсы/паттерны/этц клепать.
Вменяемые, как правило, сильно ООП с наследованием и виртуальностью не увлекаются, ибо это довольно уныло. Я иногда использую "интерфейсы", но только когда без них код нормально не структурируешь. "ООП" и "паттерны", как правило, не друзья нормальному крестолюбу, ибо мешают использовать компилятор для нахождения ошибок.
Вот жабоеды да, без паттернов никуда.
Но Жаба это новый Пасцаль и Васик. Система образования медленно уверенно на него пересаживается.
Почти все новички которых встречал начинали с жабы. Если кто-то думал что васика начинать плохо...
От тюрьмы и от сумы жабы, как не зарекайся, никуда не денешься.
В общем плюсы опять показали свою анскильно-заедушную сущность
clang: http://rextester.com/XHFAJ74316
msvc: http://rextester.com/CTYQZ1278
В среднем по больнице моя реализация быстрее при включенной оптимизации. И разрыв увеличивается при росте числа аргументов
Плюсы говно
> обошла обычный плюсовый код на гцц
> кресты соснули
Не только на гцц
[u]https://wandbox.org/permlink/cJGubPnhwTzWJwnY[u]
"O(exp(N)) сравнений" выглядит как трудоёмкость алгоритма поиска минимума/максимума и несколько запутывает читателя.
Впрочем, этот интересный вопрос от такого не закрывается.
P. S. Ботоводы, хватит меня плюсовать. Лучше окажите моральную поддержку или аргументы киньте.
Полный аналог. В 10 строках кода. Видимо, понять оптимизацию линейного участка gcc сложнее, чем древовидного.
П.с. шланг решил, что самый умный
https://wandbox.org/permlink/zudFXzeQdcvFt9v3
А еще wandbox тупит. Первый тест почти всегда прогоняется дольше
Не благодари
Судя по остроте реакции я попал в точку, да?
я бы понял если бы это был бот - но очевидно что это кто-то пишет руками. как следствие, все что он пишет у него в голове как фантазия крутиться. и он уже долго пишет - что подтвеждает его хронические проблемы. то что хочет настоятельно кому то вставить (хочет контролировать ситуацию) однозначно намекает что он какой то сопливый прыщавый импотент. вопрос только: это у него из-за недостаточного возраста, или из-за проблем с потенцией?
... и каких только типов на ГК не встретишь. похоже эти trans-gender и до наших далей добрались.
не только твоя ориентация стоит под вопросом, но даже твой пол.
о, забыл об еще одном варианте: может быть ты кастированый? твои психозы и неврозы как ты здесь публично демонстрируешь можно объяснить побочными эффектами кастрации на слабую психику.
это даже объяснит почему ты боишься женщин и пытаешься мужикам вставлять. и почему ты остановится не можешь со своими глупыми постами: другого выхода эмоциям нету.
и не мужик, и не женщина - кастрат однозначно один из самых вероятных ответов. ну сразу после 5-7 летнего сопливого ребёнка.
раскажи как твоя кастрация случилась. несчастный случай? или папа мама решили что такому как ты лучше не размножатся??
Шел 1207 год, линуксоиды так и не сделали DE с интерфейсом, как у Висты
Хоть самому пиши
Как что-то плохое.
Говно и ненужно
тем более что на линуксе тыщапицот DE, выбирай на любой вкус