On Wed, Jun 30, 2010 at 03:56:58PM +0400, Walery Studennikov wrote:
> 30 июня 2010 г. 15:53 пользователь Dmitry Karasik
> <[email protected]> написал:
> > что-то мне сомнительно что одинокий stat64, даже помноженный на пару сотен
> > раз, займет больше в сумме чем пару миллисекунд
> 
> Ну считайте сами...
> 
> У нас в одном из проектов грузится 700+ модулей, включая все зависимости.
> В @INC 15 записей.
> 
> Итого 700 * 15 = 10500 лишних системных вызовов.
> 
> Оно нам надо?

#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <unistd.h>
#include <stdio.h>
int main() 
{
        int i;
        struct stat s;
        struct timeval t1, t2;
        gettimeofday(&t1, NULL);
        for ( i = 0; i < 10500; i++) stat("unexistent.pmc", &s);
        gettimeofday(&t2, NULL);
        i = t2.tv_sec * 1000000 + t2.tv_usec - t1.tv_sec * 1000000 - t1.tv_usec;
        printf("%g seconds\n", (float)(i)/1000000);
        return 0;
}

аж целых 0.023536 seconds на моем медленном лаптопе )


-- 
Sincerely,
        Dmitry Karasik

--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить