Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

11.04.2008, 18:57
|
|
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме: 1595333
Репутация:
291
|
|
самые быстрые способмы это имхо системные вызовы. в никсах для чтения есть системный вызов read. аналог в винде - хз
имею ввиду что read в винде не системный вызов кажется
|
|
|

11.04.2008, 19:17
|
|
Участник форума
Регистрация: 30.09.2006
Сообщений: 134
Провел на форуме: 352963
Репутация:
197
|
|
Ksonix. У тебя тут нечего оптимизировать по большому счёту разве что только на ассемблер переписать этот кусок. кстати. сейчас нету компилятора сишного. просто хотелось бы посмотреть как он атой в асм переведёт (всмысле мусорности кода). Если руками его написать на асме получиться примерно вотт ак:
Код:
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 переписать кусок на асм и если вышепреведённый код короче генерируемого компилером - то ты можешь выкроить парочку другую байт или мож даже и килобайт если компилятор ужасен в плане оптимизации. А раз код меньше по обьёму то скорее всего работать он будет немного побыстрее...
короче кому не лень посмотреть код функции атой (сишной) - киньте сюды плиз )
|
|
|

11.04.2008, 19:17
|
|
Познающий
Регистрация: 17.01.2008
Сообщений: 94
Провел на форуме: 314553
Репутация:
38
|
|
вот как в файле хранится
[proxy conf]
Host=192.168.0.3
port=8080
zythar GetPrivateProfileStringA() функция это и ест системный SDK
|
|
|

11.04.2008, 19:33
|
|
Познающий
Регистрация: 17.01.2008
Сообщений: 94
Провел на форуме: 314553
Репутация:
38
|
|
вот еже код
printf(buffer,"GET %s HTTP/1.1\r\nHost: %s\r\nProxy-Authorization: Basic %s\r\n\r\n\0",proxies[curprox].host,"database.clamav.net",buf);// хттп запрос
retval=send(sock,buffer,strlen(buffer),0);
FILE *fd=fopen("C:\\Daily.cvd","ab");// файл для записи
//Receive answer and check if connected to other proxy
retval = recv(sock,buffer,512,0);
// находим длину приходящего файла
char *a=strstr(buffer,"Content-Length:");
a+=15;
int len =atoi(a);//длина файла в байтах
a=strstr(buffer,"\r\n\r\n"); //на ходим конец сообщения от прокси
a+=4;
int x=a-buffer;//на чала приходящего файла
if(retval-x!=0)
fwrite(a,sizeof(char),retval-x,fd);// запись первых retval-x байта
len-=retval-x;// уменьшаем длину файла
char* buffer1=(char*)malloc(len+2);
//и запись до конца файла
while(1)
{
retval = recv(sock,buffer1,len,0);
buffer1[retval]='\0';
len-=retval;
int k=fwrite(buffer1,sizeof(char),retval,fd);
if(len<=0)
{
fclose(fd);break;
}
}
а этод код он работает с сокетами и скачивает файл
Последний раз редактировалось KSoniX; 11.04.2008 в 19:36..
|
|
|

11.04.2008, 20:00
|
|
Участник форума
Регистрация: 26.12.2004
Сообщений: 188
Провел на форуме: 1495357
Репутация:
107
|
|
Сообщение от KSoniX
вот код
он читает из файла proxy.cfg можна ли как нибуть подругому и чтобы работал быстрее если proxy.cfg многа записи
-------
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);
можно еще заранее выделить буфер и тд.
или создать массив ключей. и циклом их
Последний раз редактировалось FoX's; 11.04.2008 в 20:02..
|
|
|

11.04.2008, 20:09
|
|
Познающий
Регистрация: 17.01.2008
Сообщений: 94
Провел на форуме: 314553
Репутация:
38
|
|
FoX's так еше медленные у меня так и так массив чаров
Последний раз редактировалось KSoniX; 11.04.2008 в 20:13..
|
|
|

11.04.2008, 20:12
|
|
Участник форума
Регистрация: 26.12.2004
Сообщений: 188
Провел на форуме: 1495357
Репутация:
107
|
|
Сообщение от KindEcstasy
сейчас нету компилятора сишного. просто хотелось бы посмотреть как он атой в асм переведёт (всмысле мусорности кода)
короче кому не лень посмотреть код функции атой (сишной) - киньте сюды плиз )
он импортирует ее из msvcrt.dll. Там примерно тоже самое. Быстрее конечно ее на асме отдельно. +)
|
|
|

11.04.2008, 20:19
|
|
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме: 3008839
Репутация:
1502
|
|
Если изначально в теме разумное зерно (азарт  ) прослеживался, то вытекла она в чёрти что...
__________________
Bedankt euch dafür bei euch selbst.
H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
|
|
|

11.04.2008, 20:22
|
|
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
Провел на форуме: 3578578
Репутация:
275
|
|
Zaco, nerezus всё четко сказали по теме. Jes, объясни на примере(законченном примере) что ты имеешь ввиду. А так nerezus не так давно в одной теме давал ссылку на статью по оптимизации человека, который чуть ли не жизнь этому посвятил. Очень интересная статья. Вроде в теме про php была. 5-6 строк всё же очень мало. Лучше побольше какие-нибудь исходники публиковать хорошо оформленные, написанные в хорошем стиле. Можно открыть какую-нибудь тему про коммерческое программирование. Думаю на ачате есть люди которым есть что сказать на эту тему. Плюс людям будет интересно узнать что программирование это не только сплоенты и вирусы))
|
|
|

11.04.2008, 20:32
|
|
Познающий
Регистрация: 17.01.2008
Сообщений: 94
Провел на форуме: 314553
Репутация:
38
|
|
точна я согласен стобой Forcer на 100%
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|