История изменений
Исправление uin, (текущая версия) :
Не, ну я то имею в виду такие вещи как например
function (ms) {
var s, m, h;
s = Math.floor(ms) % 60;
m = Math.floor(ms / 60) % 60;
h = Math.floor(ms / (60 * 60));
return {
seconds: s,
minutes: m,
hours : h
}
}
А еще совсем недавно это же вычисление выглядело у меня вот так:
var x = Math.floor(ms),
s = x % 60, h = 0,
m = Math.floor(x / 60);
if (m > 59) {
h = Math.floor(m / 60);
m %= 60;
}
Поясню свое мышление: раньше я исходил из простой логики - чем меньше делать каких то действий тем лучше. Избегал дублирования действий, то есть до этого что то вычисляю кидаю в переменную и потом дальше этот результат использую. Через проверку условия реализовано потому что там где используется этот код, часы очень редкое явление, вычислять их каждый раз ни к чему.
Но потом я насмотрелся видео, начитался афигительных статей, узнал про зависиомость по данным, ветвления, а один раз написал вместо обычного цикла функции которые друг друга вызывали в цикличном порядке и узнал про такую штуку как call stack и что его можно переполнить.
Но вообще я конечно тесты вначале пишу что бы прповерить есть ли какой то эффект и не в худшую ли он сторону, хотя JIT конечно может творить с кодом (даже с неоптимальным) волшебные вещи, что неоптимальный код после двух трех запусков уже и не проигрывает.
Исходная версия uin, :
Не, ну я то имею в виду такие вещи как например
function (ms) {
var s, m, h;
s = Math.floor(ms) % 60;
m = Math.floor(ms / 60) % 60;
h = Math.floor(ms / (60 * 60));
return {
seconds: s,
minutes: m,
hours : h
}
}
А еще совсем недавно это же вычисление выглядело у меня вот так:
var x = Math.floor(ms),
s = x % 60, h = 0,
m = Math.floor(x / 60);
if (m > 59) {
h = Math.floor(m / 60);
m %= 60;
}
Поясню свое мышление: раньше я исходил из простой логики - чем меньше делать каких то действий тем лучше. Избегал дублирования действий, то есть до этого что то вычисляю кидаю в переменную и потом дальше этот результат использую. Через проверку условия реализовано потому что там где используется этот код, часы очень редкое явление, вычислять их каждый раз ни к чему.
Но потом я насмотрелся видео, начитался афигительных статей, узнал про зависиомость по данным, ветвления, а один раз написал вместо обычного цикла функции которые друг друга вызывали в цикличном порядке и узнал про такую штуку как call stack и что его можно переполнить.
Но вообще я конечно тесты что бы прповерить есть ли какой эффект вообще и не в худшую ли он сторону, хотя JIT конечно может творить с кодом разные вещи.