![]() |
[*]Оптимизация кода
Предлагаю создать довольно интересный топ (имхо) .
Например : Один выкладывает небольшой(!)(верный) кусок кода (5-6 сток , не больше) остальные дают советы по оптимизации данного участка (подробно аргументируя) ... Суть - максимально оптимизировать код не только в сторону быстродействия но и универсальности ... Цель : Взаимное приобретение опыта , и польза для разела Например : Jes: выкладывает код : if( a == true )ему отвечают : удобнее писать по другому <как><почему , для чего> , добавить что-то ... дабы увеличить стабильность / присечь возможные ошибки / и т пДумаю , 'читателям' было бы довольно интересно как услышать полезные советы , так и самим блеснуть знаниями ... активные авторы плюсуются + |
А можно что нить на Делфи?
Я бы тоже поучаствовал! |
Язык - любой
->конечно можно :) |
>>Один выкладывает небольшой(!)(верный) кусок кода (5-6 сток , не больше)
оптимизация уровня кода языка высокого уровня настолько ничтожна по сравнению с возможной переработкой алгоритма суть которого на 6 строчках не поместиться. ни о чем короче говоря, я уж не говорю о том, что оптимизировать элементарные операторы высокого уровня просто не нужно.. пишите сразу на ассемблере учитывая конкретные особенности архитектуры процессора и вообще машины, но это не тема для античата. |
Цитата:
|
Цитата:
if (a) {c=b;} - довольно глупая конструкция. |
это пример , я имею ввиду не "оптимизацию общего синтаксиса" а про оптимизацию конкретных приёмов ...
|
>> это пример , я имею ввиду не "оптимизацию общего синтаксиса" а про оптимизацию конкретных приёмов ...
Ну так давай не пример а нормальную задачу:) |
Оптимизация нужна только там, где она нужна. А это определяется профайлером.
Оптимизация других участков вредна, т.к. приводит к ухудшению читабельности кода и в итоге мы получим код быстрее на пару процентов, но на тысячи процентов сложнее в поддержке. |
вот код
Цитата:
|
самые быстрые способмы это имхо системные вызовы. в никсах для чтения есть системный вызов read. аналог в винде - хз
имею ввиду что read в винде не системный вызов кажется |
Ksonix. У тебя тут нечего оптимизировать по большому счёту разве что только на ассемблер переписать этот кусок. кстати. сейчас нету компилятора сишного. просто хотелось бы посмотреть как он атой в асм переведёт (всмысле мусорности кода). Если руками его написать на асме получиться примерно вотт ак:
Код:
короче кому не лень посмотреть код функции атой (сишной) - киньте сюды плиз ) |
вот как в файле хранится
Цитата:
|
вот еже код
Цитата:
|
Цитата:
PHP код:
PHP код:
или создать массив ключей. и циклом их |
FoX's так еше медленные у меня так и так массив чаров
|
Цитата:
|
Если изначально в теме разумное зерно (азарт :) ) прослеживался, то вытекла она в чёрти что...
|
Zaco, nerezus всё четко сказали по теме. Jes, объясни на примере(законченном примере) что ты имеешь ввиду. А так nerezus не так давно в одной теме давал ссылку на статью по оптимизации человека, который чуть ли не жизнь этому посвятил. Очень интересная статья. Вроде в теме про php была. 5-6 строк всё же очень мало. Лучше побольше какие-нибудь исходники публиковать хорошо оформленные, написанные в хорошем стиле. Можно открыть какую-нибудь тему про коммерческое программирование. Думаю на ачате есть люди которым есть что сказать на эту тему. Плюс людям будет интересно узнать что программирование это не только сплоенты и вирусы))
|
точна я согласен стобой Forcer на 100%
|
Как я понял, Jes предложил что-то типа некоторого развлечения по поводу оптимизации кода.
Предлагаю простую задачку: Код:
var |
Как понять за O?
|
Цитата:
То есть, тот код, что я привёл работает за O(n). К примеру, матрица n*n полностью заполняется за O(n^2) PS Даже если количество операций типа n*n*n*0.0001 + 0.0007*n*n + 1000*n - 50000*lg(n), то это всё равно O(n^3) |
2desTiny бля, код оптимизировать - это надо тупо знать какие операторы/инструкции чем лучше заменять, вообще говоря оптимизировать код можно програмно. на это способен и gcc и vc и intel'овский компилятор. на программиста должна ложиться по большей части задача оптимизации алгоритма и на самом деле все.. тк все остальное даст лишь сомнительный прирост производительности. личный опыт.
зы пример что ты дал слава богу хоть как-то на это похож. для новичков - http://algolist.manual.ru/maths/count_fast/fast_exp.php : Код:
long powmod(long a, long k, long n) |
я все нашел функцию WideCharToMultiByte() если у каго есть еше варианты давайте :)
|
Цитата:
|
nerezus GetBuffer(0) возвращает TCHAR а мне нужна ЧАР
а если я в функции вместо CString поставлю TCHAR Цитата:
|
вот кусок года здес у меня ест 2 edit box в одном логин в другом пасс. я логин и пасс шифрую и записываю в файл но мой шифровальный алгоритм работает с char`ми и я с TCHAR в char конвертирую с помощью функции указанный чуть выше и я шифрую функций fmt_base64() ниже функция шифрования у меня все работает нормальна
Цитата:
Цитата:
|
Цитата:
|
| Время: 02:31 |