Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 29.04.2018, 20:10
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от laimas
но вряд ли вы как перчатки можете поменять свою бюджетную видеокарту даже на более со скромным числом ядер
не самый топ, но совсем далеко не бюджет. Да и вообще с чего такие выводы? могу в любой момент
Ответить с цитированием
  #12 (permalink)  
Старый 29.04.2018, 20:19
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от j0hnik
могу в любой момент
Тогда завтра же меняйте ее на к примеру GeForce GTX 1080, вот тогда можно будет равняться на тысячи ядер, по крайней мере одному рядовому пользователю Инета. )
Ответить с цитированием
  #13 (permalink)  
Старый 30.04.2018, 00:12
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<select>
		<option>1 поток</option>
		<option>2 потока</option>
		<option>3 потока</option>
		<option>4 потока</option>
		<option>5 потоков</option>
		<option>6 потоков</option>
		<option>7 потоков</option>
		<option>8 потоков</option>
		<option>9 потоков</option>
		<option>10 потоков</option>
		<option>11 потоков</option>
		<option>12 потоков</option>
		<option>13 потоков</option>
		<option>14 потоков</option>
		<option>15 потоков</option>
		<option>16 потоков</option>
		<option>17 потоков</option>
		<option>18 потоков</option>
		<option>19 потоков</option>
		<option>20 потоков</option>
	</select> 
	<button>Старт</button>
	<script>

		var sel = document.querySelector('select');
		document.querySelector('button').onclick = ()=> {
			var potok = sel.selectedIndex+1, flag = 0,
			time = performance.now(),
			work = [], end = [];
			for (var i = 0; i < potok; i++){
				work[i] = new Worker(URL.createObjectURL(new Blob([workerRunner.toString().replace(/^function .+\{?|\}$/g, '')],{ type:'text/javascript' })));
				end[i] = 0;
			}

			work.forEach((el,i)=>{
				el.postMessage([potok, i]);
				el.onmessage=e=>{
					end[i] = e.data;
					if(!end.includes(0)) {
						el.terminate();
						time = performance.now() - time;
						console.log('Время выполнения = ', time);
					}
				};
			});
		};

		function workerRunner() {
			self.onmessage = e => {
				w = 10000000000,
				a1 = Math.floor(w/e.data[0]*e.data[1]),
				a2 = Math.floor(w/e.data[0]*(e.data[1]+1));
				for(var i = a1; i<a2; i++) Math.random();
					self.postMessage(1);
			};
		}
	</script>
</body>
</html>


увеличил число итераций на порядок, чтобы была видна разница.

тестируйте осторожно греет CPU
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Position fixed, но динамический по оси ОХ tvixa Элементы интерфейса 4 09.09.2013 15:39
как в datepicker задать диапазон дат во время выполнения скрипта. Yurik jQuery 0 23.02.2011 12:19
Google Chrome перерисовка страницы во время выполнения скрипта Dekart Javascript под браузер 0 08.06.2010 08:35
Нужно добавить блокировку ссылки на время выполнения скрипта aidka Events/DOM/Window 1 02.08.2009 20:11
разное время выполнения операции ropowek Events/DOM/Window 2 08.10.2008 13:27