Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Порівняння попередніх версій Попередня ревізія | Наступна ревізія По сторонах наступні версії | ||
labs [2017/09/16 12:19] |
labs [2022/09/24 14:39] 127.0.0.1 зовнішнє редагування |
||
---|---|---|---|
Рядок 1: | Рядок 1: | ||
+ | ====== Бенчмарки и всякое такое ====== | ||
+ | ===== parse_ini_string() vs json_decode() vs unserialize() performance ===== | ||
+ | Ясно, что в реальном мире данные для парсинга, | ||
+ | |||
+ | <code php> | ||
+ | /* parse_ini | ||
+ | $data=" | ||
+ | for($i=0; | ||
+ | $tmp=parse_ini_string($data); | ||
+ | } | ||
+ | |||
+ | // 18.33s | ||
+ | |||
+ | /* json data decoding */ | ||
+ | $data=' | ||
+ | for($i=0; | ||
+ | $tmp=json_decode($data); | ||
+ | } | ||
+ | |||
+ | // 20.43s | ||
+ | |||
+ | /* native PHP unserialize */ | ||
+ | $data=' | ||
+ | for($i=0; | ||
+ | $tmp=unserialize($data); | ||
+ | } | ||
+ | |||
+ | // 11.36s | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | Итого делаем несложный вывод - json_decode таки самый медленный из этой троицы, | ||
+ | |||
+ | ===== UbillingCache files vs memcached vs redis ===== | ||
+ | Тестовый код: | ||
+ | |||
+ | <code php> | ||
+ | set_time_limit(0); | ||
+ | $cache = new UbillingCache(); | ||
+ | $cacheTime = 3600; | ||
+ | $iterations = 10000; | ||
+ | $testData = file_get_contents(' | ||
+ | //testing cache set time | ||
+ | $testStartTime = time(); | ||
+ | for ($i = 0; $i <= $iterations; | ||
+ | $cache-> | ||
+ | } | ||
+ | $testEndTime = time(); | ||
+ | $testResult = $testEndTime - $testStartTime; | ||
+ | $summary = __(' | ||
+ | |||
+ | //testing cache get time | ||
+ | $testStartTime = time(); | ||
+ | for ($i = 0; $i <= $iterations; | ||
+ | $fromCache = $cache-> | ||
+ | } | ||
+ | $testEndTime = time(); | ||
+ | $testResult = $testEndTime - $testStartTime; | ||
+ | $summary.=__(' | ||
+ | $summary.=__(' | ||
+ | |||
+ | show_window(__(' | ||
+ | </ | ||
+ | |||
+ | Результаты для files: | ||
+ | |||
+ | Cache set results: 11 сек. | ||
+ | Cache get results: 2 сек. | ||
+ | Data transfered: 187.43 Mb | ||
+ | |||
+ | | ||
+ | Результаты для memcached: | ||
+ | |||
+ | Cache set results: 2 сек. | ||
+ | Cache get results: 2 сек. | ||
+ | Data transfered: 187.43 Mb | ||
+ | | ||
+ | |||
+ | Результаты для redis: | ||
+ | Cache set results: 4 сек. | ||
+ | Cache get results: 3 сек. | ||
+ | Data transfered: 187.43 Mb | ||
+ | |||
+ | Итого наблюдаем, | ||
+ | <code php> | ||
+ | $testData = file_get_contents(' | ||
+ | </ | ||
+ | А вот что.\\ | ||
+ | |||
+ | Результаты для files: | ||
+ | |||
+ | Cache set results: 31 сек. | ||
+ | Cache get results: 27 сек. | ||
+ | Data transfered: 1.13 Gb | ||
+ | |||
+ | | ||
+ | Результаты для memcached: | ||
+ | |||
+ | Cache set results: 61 сек. | ||
+ | Cache get results: 1 сек. | ||
+ | Data transfered: 1.13 Gb | ||
+ | |||
+ | Результаты для redis: | ||
+ | Cache set results: 11 сек. | ||
+ | Cache get results: 5 сек. | ||
+ | Data transfered: 1.13 Gb | ||
+ | |||
+ | Итого резюмируя - у memcached всегда быстрее время чтения данных из кэша, но медленнее на операциях set. При засовывании в кэш больших объемов данных, |