рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдореЙрдбреНрдпреВрд▓ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЙрд╕реЗ GET рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд░рд╣рд╛ рд╣реИред
рдореИрдВрдиреЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдХрд┐ рдкреГрд╖реНрда рдХреЛ рдХреИрд╕реЗ рддреЗрдЬрд╝реА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдП (рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рддрдХрдиреАрдХреЛрдВ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ)ред
рдкрд╣рд▓реЗ 3 рдкрд░реАрдХреНрд╖рдг: рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдиреЗ рдПрдХ рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 50 рдкреНрд░рд╢реНрди рдХрд┐рдПред


рдореБрдЭреЗ рд╕рдордЭрд╛рдПрдВ рдХрд┐ рдХрд░реНрд▓ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдХрд░реНрд▓ рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рд╛рде рдкреГрд╖реНрда рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рд╣реИред рд╕рднреА рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдП рдЧрдП рдереЗред
рдПрдХ рдкрд╛рдВрдЪрд╡рд╛рдВ рдкрд░реАрдХреНрд╖рдг рднреА рдерд╛ - рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ php рд╕реЗ рдХрд░реНрд▓ рдХреЙрд▓рд┐рдВрдЧ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрд╕ рдореВрд░реНрдЦрддрд╛ рдХреЛ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ред
рдпрджрд┐ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдФрд╕рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗ:

рд╕реНрдерд╛рдиреЛрдВ:
- php рд╕реЙрдХреЗрдЯ
- рдХрд░реНрд▓
- рдЕрдЬрдЧрд░ pycurl
- php рдХрд░реНрд▓
рдпрджрд┐ рдЖрдк рдХрдо рдореВрд▓реНрдп рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ:

- php рд╕реЙрдХреЗрдЯ
- php рдХрд░реНрд▓
- рдЕрдЬрдЧрд░ pycurl
- рдХрд░реНрд▓
рдЬреЗрдкреА рдХреЗ рдмрд┐рдирд╛ рдХрдВрд╕реЛрд▓ рдХрд░реНрд▓ рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд╛рдж рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛ рдЕрднреА рднреА php + рдХрд░реНрд▓ рдпрд╛ рдЕрдЬрдЧрд░ + pycurl рд╕реЗ рддреЗрдЬ рд╣реИ? 4 рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдЗрд╕ рдЬреЛрдбрд╝реА рдиреЗ рднрд╛рдЧ рд▓рд┐рдпрд╛:


php рдиреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд╕рднреА 4 рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ред
рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо
рд╕рд░рд▓ GET рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рдХрд░реНрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
- рдпрд╣ рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ рдореЗрдВ рд▓рдЧрднрдЧ 2 рдЧреБрдирд╛ рдХреА рдХрдореА рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ pycurl рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдЕрдЬрдЧрд░ рдХрд░реНрд▓ рдХреЗ рд╕рд╛рде php рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред
рд╢рд╛рдпрдж рдкрд░реАрдХреНрд╖рдг рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдкрдХреНрд╖рдкрд╛рддреА рд╣реИрдВ, рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрдЪрд┐рдд рдард╣рд░рд╛рдПрдВред
рдЗрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб
рдПрдХ рдЫреЛрдЯрд╛ рд╕реА рдХрд╛рд░реНрдпрдХреНрд░рдо
рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд╕рдордп рдХреЛ рдорд╛рдкрддрд╛ рд╣реИред
#include <sys/time.h> #include <stdlib.h> struct timeval tv1, tv2, dtv; struct timezone tz; //time_ functions from http://ccfit.nsu.ru/~kireev/lab1/lab1time.htm void time_start() { gettimeofday(&tv1, &tz); } long time_stop() { gettimeofday(&tv2, &tz); dtv.tv_sec= tv2.tv_sec -tv1.tv_sec; dtv.tv_usec=tv2.tv_usec-tv1.tv_usec; if(dtv.tv_usec < 0) { dtv.tv_sec--; dtv.tv_usec += 1000000; } return dtv.tv_sec * 1000 + dtv.tv_usec / 1000; } int main(int argc, char **argv) { if(argc > 1) { time_start(); system(argv[1]); printf("\nTime: %ld\n", time_stop()); } else printf("Usage:\n timer1 command\n"); return 0; }
рдкреАрдПрдЪрдкреА
$t = 'http://www.2ip.ru/';
рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд╡рд┐рдХрд▓реНрдк (рд╕реЙрдХреЗрдЯ)
$t = 'http://www.2ip.ru/';
рдЕрдЬрдЧрд░
import pycurl import cStringIO for i in range(50): buf = cStringIO.StringIO() c = pycurl.Curl() c.setopt(c.URL, 'http://www.2ip.ru/') c.setopt(c.WRITEFUNCTION, buf.write) c.perform()
рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдХрд░реНрд▓ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП:
рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП: