![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » [решено] Откуда берутся микросекунды? |
|
[решено] Откуда берутся микросекунды?
|
Кот Ти Сообщения: 7318 |
Например, в PHP есть функция microtime(), выдающая текущее значение микросекунд. Секунды - ещё ладно, можно там посчитать (хотя тоже не в курсе, но часы-то делают электронные). А вот микросекунды откуда берутся? Неужели таймер замеряет всю эту ерунду, затрачивая бесценные ресурсы процессорного (или ещё какого) времени?
Или это рандомом выдаётся? |
|
Отправлено: 16:13, 19-09-2007 |
Назгул Сообщения: 2633
|
Профиль | Отправить PM | Цитировать Цитата CyberDaemon:
У последовательных шин и интерфейсов вообще два проводка, дык их никто двухбитными не считает же ![]() |
|
------- Отправлено: 10:44, 20-09-2007 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Цитата kim-aa:
Если бы процессоры сразу были 32-разрядные, зачем стоило бы оговаривать байт, как 8 бит? Цитата kim-aa:
|
||
Отправлено: 18:44, 20-09-2007 | #12 |
![]() Ветеран Сообщения: 540
|
Профиль | Отправить PM | Цитировать Немного увлекаюсь программированием, так вот в WinAPI есть такая функция - GetTickCount
Цитата:
В WinAPI как известно есть только те функции и процедуры которые используются самой Windows. Рискну предположить, что эти "микросекунды" необходимы для распределения процессорного времени между приложениями. Ведь пока еще не придумали процессор позволяющий одновременно обрабатывать несколько десятков задач и эти функции берет на себя ОС. |
|
------- Отправлено: 23:55, 23-09-2007 | #13 |
Ветеран Сообщения: 1404
|
Профиль | Отправить PM | Цитировать Цитата:
![]() /* +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ | Copyright (c) 1997-2006 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available through the world-wide-web at the following url: | | http://www.php.net/license/3_01.txt | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Author: Paul Panotzki - Bunyip Information Systems | +----------------------------------------------------------------------+ */ /* $Id: microtime.c,v 1.53.2.2 2006/01/01 12:50:15 sniper Exp $ */ #include "php.h" #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif #ifdef PHP_WIN32 #include "win32/time.h" #elif defined(NETWARE) #include <sys/timeval.h> #include <sys/time.h> #else #include <sys/time.h> #endif #ifdef HAVE_SYS_RESOURCE_H #include <sys/resource.h> #endif #ifdef HAVE_UNISTD_H #include <unistd.h> #endif #include <stdlib.h> #include <string.h> #include <stdio.h> #include <errno.h> #include "microtime.h" #include "ext/date/php_date.h" #define NUL '\0' #define MICRO_IN_SEC 1000000.00 #define SEC_IN_MIN 60 #ifdef HAVE_GETTIMEOFDAY static void _php_gettimeofday(INTERNAL_FUNCTION_PARAMETERS, int mode) { zend_bool get_as_float = 0; struct timeval tp = {0}; struct timezone tz = {0}; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &get_as_float) == FAILURE) { return; } if (gettimeofday(&tp, &tz)) { RETURN_FALSE; } if (get_as_float) { RETURN_DOUBLE((double)(tp.tv_sec + tp.tv_usec / MICRO_IN_SEC)); } if (mode) { timelib_time_offset *offset; offset = timelib_get_time_zone_info(tp.tv_sec, get_timezone_info(TSRMLS_C)); array_init(return_value); add_assoc_long(return_value, "sec", tp.tv_sec); add_assoc_long(return_value, "usec", tp.tv_usec); add_assoc_long(return_value, "minuteswest", -offset->offset / SEC_IN_MIN); add_assoc_long(return_value, "dsttime", offset->is_dst); timelib_time_offset_dtor(offset); } else { char ret[100]; snprintf(ret, 100, "%.8f %ld", tp.tv_usec / MICRO_IN_SEC, tp.tv_sec); RETURN_STRING(ret, 1); } } /* {{{ proto mixed microtime([bool get_as_float]) Returns either a string or a float containing the current time in seconds and microseconds */ PHP_FUNCTION(microtime) { _php_gettimeofday(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); } /* }}} */ /* {{{ proto array gettimeofday([bool get_as_float]) Returns the current time as array */ PHP_FUNCTION(gettimeofday) { _php_gettimeofday(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1); } #endif /* }}} */ #ifdef HAVE_GETRUSAGE /* {{{ proto array getrusage([int who]) Returns an array of usage statistics */ PHP_FUNCTION(getrusage) { struct rusage usg; long pwho = 0; int who = RUSAGE_SELF; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &pwho) != FAILURE && pwho == 1) { who = RUSAGE_CHILDREN; } memset(&usg, 0, sizeof(struct rusage)); if (getrusage(who, &usg) == -1) { RETURN_FALSE; } array_init(return_value); #define PHP_RUSAGE_PARA(a) \ add_assoc_long(return_value, #a, usg.a) #if !defined( _OSD_POSIX) && !defined(__BEOS__) /* BS2000 has only a few fields in the rusage struct */ PHP_RUSAGE_PARA(ru_oublock); PHP_RUSAGE_PARA(ru_inblock); PHP_RUSAGE_PARA(ru_msgsnd); PHP_RUSAGE_PARA(ru_msgrcv); PHP_RUSAGE_PARA(ru_maxrss); PHP_RUSAGE_PARA(ru_ixrss); PHP_RUSAGE_PARA(ru_idrss); PHP_RUSAGE_PARA(ru_minflt); PHP_RUSAGE_PARA(ru_majflt); PHP_RUSAGE_PARA(ru_nsignals); PHP_RUSAGE_PARA(ru_nvcsw); PHP_RUSAGE_PARA(ru_nivcsw); PHP_RUSAGE_PARA(ru_nswap); #endif /*_OSD_POSIX*/ PHP_RUSAGE_PARA(ru_utime.tv_usec); PHP_RUSAGE_PARA(ru_utime.tv_sec); PHP_RUSAGE_PARA(ru_stime.tv_usec); PHP_RUSAGE_PARA(ru_stime.tv_sec); #undef PHP_RUSAGE_PARA } #endif /* HAVE_GETRUSAGE */ /* }}} */ /* * Local variables: * tab-width: 4 * c-basic-offset: 4 * End: * vim600: sw=4 ts=4 fdm=marker * vim<600: sw=4 ts=4 */ |
|
------- Отправлено: 10:15, 24-09-2007 | #14 |
Назгул Сообщения: 2633
|
Профиль | Отправить PM | Цитировать Цитата Coutty:
Байт был синонимом октета, и одновременно равнялся ходовому машинному слову. Это у 32х и более разрядов нет "физической основы", т. к. я не припомню ходовых систем счисления "длиннее" шестнадцатиричной. |
|
------- Отправлено: 11:18, 24-09-2007 | #15 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Откуда и зачем взялась папка C:\symbols? | truvo | Хочу все знать | 2 | 01-03-2009 21:24 | |
[решено] Откуда глюк? | Mr.Rome | Непонятные проблемы с Железом | 1 | 31-05-2008 13:37 | |
[решено] Откуда берутся rootkit-процессы вида sp??.sys | ShaRP | Лечение систем от вредоносных программ | 1 | 12-05-2008 16:39 | |
емейлы и домены. От куда они берутся? | united | Хочу все знать | 12 | 01-09-2006 13:47 | |
Откуда берутся эти файлы? | Klm | Хочу все знать | 8 | 26-02-2004 07:48 |
|