Heim > Backend-Entwicklung > PHP-Tutorial > Doppeltes Problem mit der Mikrozeitausgabe in PHP

Doppeltes Problem mit der Mikrozeitausgabe in PHP

WBOY
Freigeben: 2016-10-22 00:14:23
Original
1065 Leute haben es durchsucht

Die Ausgabe von microtime() an verschiedenen Stellen in meiner Methode führt zur gleichen Zeit Doppeltes Problem mit der Mikrozeitausgabe in PHP

ServerinformationenDoppeltes Problem mit der Mikrozeitausgabe in PHP

Antwortinhalt:

Die Ausgabe von microtime() an verschiedenen Stellen in meiner Methode führt zur gleichen Zeit Doppeltes Problem mit der Mikrozeitausgabe in PHP

ServerinformationenDoppeltes Problem mit der Mikrozeitausgabe in PHP

Mikrozeit ist nicht eindeutig. Wer legt fest, dass sie nicht gleichzeitig ausgegeben werden kann?

Hinweis: Die Mikrozeit von PHP verwendet das Ergebnis der gettimeofday-Funktion im System direkt für die Ausgabe, ohne dass eine Cache-Verarbeitung erforderlich ist. Wenn das Ergebnis dasselbe ist, speichert PHP es nicht.

Implementierung von Mikrozeit in PHP 5.3.28

<code>static void _php_gettimeofday(INTERNAL_FUNCTION_PARAMETERS, int mode)
{
    zend_bool get_as_float = 0;
    struct timeval tp = {0};

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &get_as_float) == FAILURE) {
        return;
    }

    if (gettimeofday(&tp, NULL)) {
        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);
    }
}</code>
Nach dem Login kopieren

Ich erinnere mich, dass der Lehrer über die Genauigkeit des PHP-Algorithmus gesprochen hat. Bitten Sie den Meister unten, die spezifischen Fragen zu beantworten

echo microtime();
sleep(1);
echo microtime();

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage