Вызывать функцию каждую наносекунду?

Не уверен, что это возможно в свете физических ограничений компьютерного оборудования или электронов, но существует ли практический способ в любом языке программирования вызывать функцию каждую наносекунду? Какие ограничения существуют?

Например, при попытке javascript это происходит не так, как ожидалось:

<html>
<head>
<script type="text/javascript">

var numb = 1;

function addNum(){

numb=numb+1;
document.getElementById('thing').innerHTML = numb;

}
</script>

</head>

// try to do addNum every nanosecond
<body onload='setInterval("addNum()", 0.000001)'>

<div id="thing"></div>

</body>
</html>

person e82ric    schedule 30.07.2011    source источник
comment
stackoverflow.com/questions/6002808/   -  person Lenar Hoyt    schedule 30.07.2011
comment
Я почти уверен, что цикл процессора занимает почти наносекунду, чтобы даже пройти его цикл.   -  person Matt    schedule 30.07.2011
comment
@Mitch Wheat, потому что моей прапрабабушке нужен этот ответ как можно скорее!   -  person e82ric    schedule 30.07.2011
comment
@e82ric: это юмор?   -  person Mitch Wheat    schedule 30.07.2011
comment
@Mitch Wheat Ага! ты очень проницательный чувак   -  person e82ric    schedule 30.07.2011
comment
@e82ric: Кажется, я раздвоился. Пожалуйста, хватит остроумия такого калибра. Я боюсь, что могу полностью взорваться от смеха.   -  person Mitch Wheat    schedule 30.07.2011
comment
Итак, как насчет ответа на вопрос: почему вы думаете, что вам нужно вызывать функцию каждую наносекунду?   -  person Mitch Wheat    schedule 30.07.2011
comment
@Mitch Wheat - Короткий ответ: есть ситуации, в которых проверка изменений в закономерностях, происходящих в этой временной шкале, была бы очень полезной. Я задавался вопросом, есть ли у обычных компьютеров возможность делать такие вещи. еще новичок в CS кстати   -  person e82ric    schedule 30.07.2011
comment
Что бы вы наблюдали, что будет меняться со скоростью 1 ГГц?   -  person JimN    schedule 30.07.2011
comment
Применений было бы много! Одна из идей, которые у меня есть, состоит в том, чтобы анализировать видеоданные в этом временном масштабе для создания сверхзамедленного видео быстро движущихся объектов (молния, полет насекомых, взрывы и т. д.).   -  person e82ric    schedule 30.07.2011
comment
Это предполагает, что у вас есть аппаратное устройство, способное обрабатывать данные с этой скоростью, и ввод-вывод, способный получать данные с этой скоростью, и операции чтения/записи памяти, способные работать с этой скоростью.   -  person JimN    schedule 30.07.2011


Ответы (2)


Кванты временного разделения Javascript не так уж малы, черт возьми, вы, вероятно, не сможете получить такую ​​степень детализации, если она не будет реализована аппаратно, потому что ни одна операционная система, которую я знаю, не будет выполнять временной разрез с такой маленькой степенью детализации, потому что связанные с этим накладные расходы сделают ее бесполезной, и ваш код, вероятно, не будет может выполнять это часто из-за накладных расходов на настройку внутренних таймеров и задействованное переключение контекста.

person Jesus Ramos    schedule 30.07.2011
comment
Кванты временного разделения - отличные новые термины для меня, чтобы гуглить. спасибо 4 отличный ответ - person e82ric; 30.07.2011

Вызов функции каждую наносекунду будет означать, что вы можете использовать максимум 3 инструкции за вызов на ЦП 3 ГГц, предполагая, что инструкции выполняются за один цикл. Этого недостаточно даже для накладных расходов на вызов функции.

person hammar    schedule 30.07.2011