понеделник, 20 юни 2011 г.

Timestamps в различните езици

Тази сутрин ми притрябва да пиша чрез Perl в SQLite базичка в която една от таблиците има Timestamp_Current и се лепи само при insert. Обаче при select, в where клаузата се сетих че ще ми трябва този timestamp да си го пиша аз. Винаги при select на какъвто и да е език, в каквато и да е база винаги съм се лутал средно поне по 30 минути за да намеря правилните формати за timestamp с правилния код.

http://www.epochconverter.com/

По-надолу в страницата има примери за най-известните езици и бих казал че спестява доста време ;)


ondemand vs. performance



След целодневни опити да отгатна защо графиката (факториел към време) рязко се променя(почти прекъсва), най-сетне се усетих, че на ubuntu-то си имам cpufreq скалинг, който влияе на резултатие. Ето графиките при различните режими:

OnDemand:


Интересна графика, която, като се има предвид, че езика, на който пиша в момента е erlang, за мен говореше, че тази безграничност на променливите му на заден план съвсем не е с линейна графика, а по-скоро, както на публикуваната горе графика, е стъпаловидна (излишно е да казвам колко се развълнувах че - "Аха! Открих нещо... сега многонишковите ми програми ще
   са суперефективни"). Да обаче се оказва че след като пуснах cpufreq-а    с    governor performance, нещата лъснаха. Ето графика на същата функция        при различният governor.

Performance:



Интересно е да се отбележи, че въпреки загубеното време и напразните надежди, разбрах че сменянето на честотата става доста по-късно от това, което се показва по отговорните файлове ( /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq и други в същата директория).

Целият тест продължава повече от 40 секунди; промените в честотата се отразяват по файловете през първата секунда; от графиката е видно че стават ефективни доста по-късно.