Угадай где говнокод!?

Вот два примера реализации функции для обнуления массива:


int a[n];

...

void clear_array_1()

{

int i; 

for (i = 0; i < n; i++)

{

a[i]=0;

}

}

....

void clear_array_2()

{

a[0]=0;

a[1]=0;

a[2]=0;

...

a[n-2]=0;

a[n-1]=0;

}

...


Информация к размышлению:


Функция void clear_array_1

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

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


Функция void clear_array_2

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

- недостатки, в случае большого массива большое количество строк кода (дополнительные затраты времени на написание, но если платят за количество строк, резко превращается в достоинство! ;-) ).


Разъясните мне бестолковому, какая из функций говнокод, а какая для тру отцов???

Вы смотрите срез комментариев. Показать все
2
DELETED
Автор поста оценил этот комментарий

1 - имеет линейную сложность O(n) (тык - https://tproger.ru/articles/computational-complexity-explain... ), возможно пересоздание массива проще, чем обход всех элементов (зависит от языка, хранимых данных и т/д).

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

раскрыть ветку (9)
0
Автор поста оценил этот комментарий
Или надо, если у тебя например у тебя фиксированный массив из 10 элементов. Микрооптимизации йоп
раскрыть ветку (8)
0
DELETED
Автор поста оценил этот комментарий

я не вижу никакой разницы, в обоих случая перебор - либо через цикл, либо через "ручной" доступ. Что вы тут экономите? Строчки на вашем мониторе? Не забывайте про оптимизации современных компиляторов.

раскрыть ветку (7)
1
Автор поста оценил этот комментарий

первый вариант, раза в 3-4 медленнее второго, в случае если эта функция затем используется в других функциях, которые в свою очередь используются в других, то задержки становятся довольно ощутимы.

раскрыть ветку (3)
0
DELETED
Автор поста оценил этот комментарий

Можете показать тестовый стенд? Как вы измеряли? В какой среде работает код и на каких данных?

раскрыть ветку (2)
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Мне сложно с вами спорить - вы опираетесь на свой опыт, не приводя никаких доказательств, за сим откланиваюсь.

0
Автор поста оценил этот комментарий
Зависит от языка и количества итераций, на пыхе иногда приходится ещё и имена переменных сокращать. Конкретно для этой задачи можно бенч написать на миллион итераций и посмотреть что быстрее в каждом конкретном языке. Но мне лень
0
Автор поста оценил этот комментарий

А ещё 4 байта озу ))))

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

а если в 64 потока, рекурсивно?! :))))

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества