Предлагаю создать довольно интересный топ (имхо) . Например : Один выкладывает небольшой(!)(верный) кусок кода (5-6 сток , не больше) остальные дают советы по оптимизации данного участка (подробно аргументируя) ... Суть - максимально оптимизировать код не только в сторону быстродействия но и универсальности ... Цель : Взаимное приобретение опыта , и польза для разела Например : Jes: выкладывает код : if( a == true ) { c = b; } ему отвечают : удобнее писать по другому <как><почему , для чего> , добавить что-то ... дабы увеличить стабильность / присечь возможные ошибки / и т п Думаю , 'читателям' было бы довольно интересно как услышать полезные советы , так и самим блеснуть знаниями ... активные авторы плюсуются +
>>Один выкладывает небольшой(!)(верный) кусок кода (5-6 сток , не больше) оптимизация уровня кода языка высокого уровня настолько ничтожна по сравнению с возможной переработкой алгоритма суть которого на 6 строчках не поместиться. ни о чем короче говоря, я уж не говорю о том, что оптимизировать элементарные операторы высокого уровня просто не нужно.. пишите сразу на ассемблере учитывая конкретные особенности архитектуры процессора и вообще машины, но это не тема для античата.
переменная A хоть как вернёт правду. Если ты этим хотел вернуть именно правду с целого числа, то проще if (a) {c=b;} - довольно глупая конструкция.
это пример , я имею ввиду не "оптимизацию общего синтаксиса" а про оптимизацию конкретных приёмов ...
>> это пример , я имею ввиду не "оптимизацию общего синтаксиса" а про оптимизацию конкретных приёмов ... Ну так давай не пример а нормальную задачу
Оптимизация нужна только там, где она нужна. А это определяется профайлером. Оптимизация других участков вредна, т.к. приводит к ухудшению читабельности кода и в итоге мы получим код быстрее на пару процентов, но на тысячи процентов сложнее в поддержке.
вот код он читает из файла proxy.cfg можна ли как нибуть подругому и чтобы работал быстрее если proxy.cfg многа записи
самые быстрые способмы это имхо системные вызовы. в никсах для чтения есть системный вызов read. аналог в винде - хз имею ввиду что read в винде не системный вызов кажется
Ksonix. У тебя тут нечего оптимизировать по большому счёту разве что только на ассемблер переписать этот кусок. кстати. сейчас нету компилятора сишного. просто хотелось бы посмотреть как он атой в асм переведёт (всмысле мусорности кода). Если руками его написать на асме получиться примерно вотт ак: Code: push ebx xor ebx, ebx a3: lodsb cmp al, '9' ja a1 cmp al, '0' jb err sub al, '0' jmp a4 a1: cmp al, 'A' jb err cmp al, 'F' ja a2 sub al, 'A'-10 jmp a4 a2: cmp al, 'a' jb err cmp al, 'f' ja err sub al, 'a'-10 a4: shl ebx, 4 or bl, al loop a3 err: mov eax, ebx pop ebx ret ито я сомневаюсь что это супер-код всмысле короткости. может кто и короче знает. в любом случае, если тебе KSoniX переписать кусок на асм и если вышепреведённый код короче генерируемого компилером - то ты можешь выкроить парочку другую байт или мож даже и килобайт если компилятор ужасен в плане оптимизации. А раз код меньше по обьёму то скорее всего работать он будет немного побыстрее... короче кому не лень посмотреть код функции атой (сишной) - киньте сюды плиз )
------- PHP: DWORD readcfg(char* param, char* bufout,DWORD bufsize){ return GetPrivateProfileStringA("Proxy conf",param,NULL,bufout,bufsize,"c:\\proxy.cfg"); } и читай... PHP: char buf[256]; readcfg("host",buf,255); readcfg("port",buf,255); можно еще заранее выделить буфер и тд. или создать массив ключей. и циклом их
Zaco, nerezus всё четко сказали по теме. Jes, объясни на примере(законченном примере) что ты имеешь ввиду. А так nerezus не так давно в одной теме давал ссылку на статью по оптимизации человека, который чуть ли не жизнь этому посвятил. Очень интересная статья. Вроде в теме про php была. 5-6 строк всё же очень мало. Лучше побольше какие-нибудь исходники публиковать хорошо оформленные, написанные в хорошем стиле. Можно открыть какую-нибудь тему про коммерческое программирование. Думаю на ачате есть люди которым есть что сказать на эту тему. Плюс людям будет интересно узнать что программирование это не только сплоенты и вирусы))