LINUX.ORG.RU
Ответ на: комментарий от Lumi

>Две операции -- не потянет на профи.
Опять же не критерий это :) Нужно чтобы код работал стабильно - это главное условие, оптимизацией нужно заниматься после профайлинга готового продукта ибо 20 процентов кода выполняются 80 процентов
времени :)

anonymous
()
Ответ на: комментарий от anonymous

На самом деле разница огромна. Стоит глянуть в ассемблерный листинг. При Вашем подходе при оптимизации будет надо переписывать 99% кода.

Lumi ★★★★★
()
Ответ на: комментарий от Lumi

>На самом деле разница огромна. Стоит глянуть в ассемблерный листинг.
Гляньте, разницы нет. Вы может и программы по вытягиванию данных из базы данных на ассемблере писать предлогаете ? Программа должна работать стабильно это главное для чего вообще пишут программы. 20 процентов кода выполняются 80 процентов времени :) Предлогаете все оптимизировать ? Предлогаете на ассемблере писать все ? Под разные процы ? Трезвым ? :)
Сначала нужно добиться нужного функционала и стабильной работы, потом посмотреть на результаты профайлинга и только потом что-то оптимизировать.

anonymous
()
Ответ на: комментарий от vada

>Про ноль в условии задачи ни чего не говорилось. Отсебятину в >реалицации ТЗ обычно гонит хто?
Вам типа два варианта предложили :)

anonymous
()
Ответ на: комментарий от anonymous

Пипец, писать надо сразу как надо! Если не получается -- поштудируйте математические дисциплины. Если при профилировании приходится переписывать более 20% кода, надо серьёзно задумываться о другой работе. А судя по тому, что вы предложили для тривиального случая, за вами придётся переписывать более 80%.

Lumi ★★★★★
()
Ответ на: комментарий от Lumi

Мне это напоминает спор Линуса и Таненбаума, Linux работает, а Minix в попе... Или спор о том применять goto или нет. Это вопрос скорее теоретический а не практический.

Не надо говорить что придется а что не придется. Мне предложили тест в шутку, я в шутку ответил, естественно в реальной задаче решение могло быть другим. Даже вариант с if'ами не является не верным. Задача написать без глючный код. Мне лично скажем быстрая файловая система которая рушится на раз нафиг не нужна. Может вам нужна ?

anonymous
()
Ответ на: комментарий от Lumi

>>Пипец, писать надо сразу как надо!
Это как ? Быстрый код ? Это явно вам на ассемблере надо ! Мы уже все напишем, отпрофилируем и оптимизируем (только то что действительно надо !), а вы только первый блок закончите писать, а там глядишь и процессор этот в небытие уйдет когда закончите. Вы ведь по-серьезному оптимизировать будете, по конвеерам раскидывать ?

anonymous
()
Ответ на: комментарий от anonymous

>Вам типа два варианта предложили :)

За отмаз не катит. Нарушил ТЗ, отвечай по всей строгости закона. :)

На самом деле вы, ребята, повелись как дети. Смайлики в моей задиче видили? Вот! Вы все дружно упустили такоую часть жизненного цикла программы как сопровождение. А оно, зачастую, стоит 50-70 процентов всех вложений в программу.

Ну и че? Прикольно сопровождать код 3-a; или a xor 3; или (4 >> a) & 3;
Через месяц как баран будешь на него смотреть, и ругаться на себя матом. А если через год в этот код сунется кто-то другой, то за такую писанину и по едальнику можно схлопотать.

Вывод, или писать читаемый код, или коментировать подробным описанием чего и как тут наворочено. Но с коментариями тож не все гладко. Про языковый барьер слышали? Вот и остается писать читаемый код. А если место узкое, и требует хитроумной оптимизации злобным кодом, то коментировать, коментировать, коментировать...

Вот тут и отличие профи от непрофи :)

vada ★★★★★
()
Ответ на: комментарий от vada

2vada: прав, я про if'ы выше сказал уже. Делать читабельный код важно, но еще важнее делать стабильный код и верить что это возможно :)

anonymous
()
Ответ на: комментарий от anonymous

>А Alphex слушает да ест :)

Ему только шокотерапия поможет :)

Написать

b[i++] = a[i++, --i]; // или что-то вроде того

это сколько выкурить надо?

vada ★★★★★
()
Ответ на: комментарий от vada

Хорошая у парня трава похоже :)

Бешенный бобер-травокур.

anonymous
()
Ответ на: комментарий от Lumi

> Чем ((4 >> a) & 3) будет стабильнее (3-a) или (a xor 3)?

Тем, что при любом аргументе, отличном от [12], на выходе будет 0. Всегда. ;)

baka-kun ★★★★★
()
Ответ на: комментарий от baka-kun

print $socket 3-$a or die "im not a professional :(";

:)
perl is rulezz

vm ★★
()
Ответ на: комментарий от vada

> Есть древний тест для того, чтоб отличить профи от непрофи.

Эх, помню в студенческие годы "скандальчик" небольшой. ;) Задача: напишите функцию, возвращающую "Истина", если аргумент нечетный, и "Ложь", если четный.

Естественно, умные студиозусы пишут

if (a % 2 > 0) return TRUE; else return FALSE;

Я, бормоча "зачем функция", рисую

#define odd(a) (a & 1)

Что вызывает резкое неприятие одного препода и такое же резкое одобрение второго (у нас на лабах оба сразу были, а лекции по очереди читали). ;) До завкефедрой дошло...

baka-kun ★★★★★
()
Ответ на: комментарий от yeg

бернштейн это хорошо, но нужно еще и cgi
mathopd это умеет

anonymous
()
Ответ на: комментарий от vada

Дык, я ж про бэдблоки всё ж прав оказался :)

Lumi ★★★★★
()
Ответ на: комментарий от baka-kun

Тип другой, но пример тож прикольный. Завкафедрой респект, если до него дошло, а до других нет.

Lumi ★★★★★
()
Ответ на: комментарий от baka-kun

> Задача: напишите функцию, возвращающую "Истина", если аргумент нечетный, и "Ложь", если четный.

Ты вы..нулся, но задание не выполнил. Ты не написал ФУНКЦИЮ, как значится в задании. Так что получай свой кол и не визжи :)

anonymous
()
Ответ на: комментарий от Lumi

>Про другие аргументы, отличные от {1,2} речь не шла
Тебе два варианта предложили быстрый без проверки и с проверкой и то что if то-же правильно сказали.

anonymous
()
Ответ на: комментарий от anonymous

> Он как раз написал функцию если ты не заметил.

Не-а. Он написал директиву, которая вместо вызова функции odd(a) подставляет глупость (a & 1). Кстати, сработает ли это при a, равном 4?

На всякий случай, напоминаю задание: "напишите функцию, возвращающую "Истина", если аргумент нечетный, и "Ложь", если четный".

Вот такие умники и пишут заумный, но неработающий код :)

anonymous
()
Ответ на: комментарий от anonymous

4 & 1 равно 0 (те "Ложь") все как и требовалось, что ты сказать то хотел ?

anonymous
()
Ответ на: комментарий от anonymous

>Вот такие умники и пишут заумный, но неработающий код :)
А такие умники не могут определить работает код или нет, а значит относятся к первой описанной выше категории.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.