![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
31.08.2017, 17:58
|
![Аватар для Vlasenko Fedor](https://javascript.ru/forum/image.php?u=27064&dateline=1363177798) |
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
рони,
так я вроде меньше строчек написал то ![Lol](https://javascript.ru/forum/images/smilies/lol.gif)
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
31.08.2017, 18:15
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
Poznakomlus,
да похоже в данном случае эта строка не даёт никакого ускорения
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
31.08.2017, 18:17
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
var arr = new Array(10000).fill(1)
let threeF = arr => arr.filter(el => {
this[el] = ++this[el] || 1;
return 3 === this[el]
}, {})
console.time("x")
var x = threeF(arr);
console.timeEnd("x")
function fn(d, e) {
for (var f = [], b = {}, a, c = 0; c < d.length; c++)
a = d[c], b[a] == e || (b[a]++ || (b[a] = 1), b[a] == e && f.push(a));
return f
};
console.time("k")
var k = fn(arr,3);
console.timeEnd("k")
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
31.08.2017, 18:19
|
![Аватар для Vlasenko Fedor](https://javascript.ru/forum/image.php?u=27064&dateline=1363177798) |
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
так извращаясь можно в одну строку
let threeF = arr => arr.filter(el => (this[el] = ++this[el]|| 1) && 3 === this[el], {});
Последний раз редактировалось Vlasenko Fedor, 31.08.2017 в 18:30.
Причина: убрал лишнии скобки
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
31.08.2017, 22:36
|
![Аватар для j0hnik](https://javascript.ru/forum/image.php?u=50436&dateline=1483015396) |
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Сообщение от рони
|
var arr = new Array(10000).fill(1)
let threeF = arr => arr.filter(el => {
this[el] = ++this[el] || 1;
return 3 === this[el]
}, {})
console.time("x")
var x = threeF(arr);
console.timeEnd("x")
function fn(d, e) {
for (var f = [], b = {}, a, c = 0; c < d.length; c++)
a = d[c], b[a] == e || (b[a]++ || (b[a] = 1), b[a] == e && f.push(a));
return f
};
console.time("k")
var k = fn(arr,3);
console.timeEnd("k")
|
Рони, друг мой, ну разве можно так проверять? ![Cray](https://javascript.ru/forum/images/smilies/cray.gif)
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
01.09.2017, 07:10
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
j0hnik,
предложи способ лучше!
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
01.09.2017, 08:13
|
![Аватар для j0hnik](https://javascript.ru/forum/image.php?u=50436&dateline=1483015396) |
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Сообщение от рони
|
j0hnik,
предложи способ лучше!
|
Просто запустите ваш последний "тест скорости" насколько раз. разброс больше чем в 100% при абсолютно идентичном коде как бэ намекает что измерительный инструмент не совсем точный.
https://jsperf.com/ - Рони вот вам отличный сервис. там даже 5% разброса не видел
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
01.09.2017, 10:10
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
j0hnik,
ок но в данном случае этот сервер показал фантастические результаты, когда 11 циклов быстрее одного.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
01.09.2017, 13:50
|
![Аватар для j0hnik](https://javascript.ru/forum/image.php?u=50436&dateline=1483015396) |
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Сообщение от рони
|
j0hnik,
ок но в данном случае этот сервер показал фантастические результаты, когда 11 циклов быстрее одного.
|
Рони, знал бы я все низкоуровневые процессы, которые там происходят. ![Sad](https://javascript.ru/forum/images/smilies/sad.gif)
|
|
|
|