Так каплю жидкого азота можно и в руке держать. Главное постоянно перекатывать по ладони, чтобы на одном месте не лежала, тогда газовая подушка между каплей и ладонью не дает обжечься.
«Так что следующей мыши дали успокоительного, и полет ей понравился» — это прямо как в анекдоте:
Ученый-биолог выступает на конференции:
— Коллеги, нам все-таки удалось скрестить белого и бурого медведей.
Выкрики из зала:
— Ну! и как?
— Зверушки остались довольны.
:)
Да, последняя оптимизация позволяет быстро клонировать состояние виртуальной машины и также быстро узнавать, что будет в далеком будущем, если бабочка взмахнет левым крылышком на пару процентов сильнее, чем правым… :) Т.е. в принципе, можно применять генетические алгоритмы, динамическое программирование, методы монте-карло и т.д. и т.п. для того, чтобы максимизировать функцию «вознаграждения» для спутника.
Я на F# написал компилятор/конвертатор кода виртуальной машины спутника в .NET сборку (фактически один класс на C#).
Сначала я сделал тупую конвертацию в лоб, когда в классе были все нужные массивы памати, входа и выхода.
Например, для первой задачи сгенерированный код получился таким (не приведен код класса, от которого происходит наследование, но он тривиальный).
На моем компе (DualCore Intel Core 2 Duo E8500, 3166 MHz) 10 миллионов шагов (каждый шаг — одна секунда виртуального времени) выполнялись за 10,7695036 секунд, т.е. для первой задачи (266 инструкций в одном шаге) скорость получалась 928'547 виртуальных шагов за единицу нашего реального времени.
После этого я решил, что компилятор не знает, что некторые ячейки памяти фактически являются временными переменными и нигде глобально не используются. Тогда я решил немного оптимизировать кодогенеряцию — просто разделил ячейки памяти на локальные, глобальные и константы, а также отказался от использования массивов для памяти и сам класс ни от кого не наследуется. Новый сгенерированный код выглядит так.
Такая простая оптимизация увеличила скорость в 4,36 раза. :) Теперь для первой задачи 10 миллионов шагов выполнялись за 2,4674865 секунды, таким образом скорость возросла до 4'052'707 виртуальных шагов за единицу нашего реального времени. Код, которым мерялясь скорость.
Я думаю, эти вопросы надо решать с ИИ. Нужно определиться чего мы хотим в конечном итоге, а не в частности (делиться/не делиться исходниками) и дать задание ИИ выбрать оптимальный путь для достижения поставленной цели. Возможно там и будет в какой-то форме сказано, что надо поделиться исходниками/идеями, а может и нет.
Было бы неплохо для дилетантов типа меня описать как трактовать параметеры из таблицы. Например, «Яркость
вспышки» = -1 — это много или мало. Что ярче, -1 или -5?
Ученый-биолог выступает на конференции:
— Коллеги, нам все-таки удалось скрестить белого и бурого медведей.
Выкрики из зала:
— Ну! и как?
— Зверушки остались довольны.
:)
так и должно быть?
Сначала я сделал тупую конвертацию в лоб, когда в классе были все нужные массивы памати, входа и выхода.
Например, для первой задачи сгенерированный код получился таким (не приведен код класса, от которого происходит наследование, но он тривиальный).
На моем компе (DualCore Intel Core 2 Duo E8500, 3166 MHz) 10 миллионов шагов (каждый шаг — одна секунда виртуального времени) выполнялись за 10,7695036 секунд, т.е. для первой задачи (266 инструкций в одном шаге) скорость получалась 928'547 виртуальных шагов за единицу нашего реального времени.
После этого я решил, что компилятор не знает, что некторые ячейки памяти фактически являются временными переменными и нигде глобально не используются. Тогда я решил немного оптимизировать кодогенеряцию — просто разделил ячейки памяти на локальные, глобальные и константы, а также отказался от использования массивов для памяти и сам класс ни от кого не наследуется. Новый сгенерированный код выглядит так.
Такая простая оптимизация увеличила скорость в 4,36 раза. :) Теперь для первой задачи 10 миллионов шагов выполнялись за 2,4674865 секунды, таким образом скорость возросла до 4'052'707 виртуальных шагов за единицу нашего реального времени.
Код, которым мерялясь скорость.
taskkill /F /IM aspnet_wp.exe /T
Думаю, аналогично можно и с другими процессами.
Фамилии, имена, адреса, даты, источники!
вспышки» = -1 — это много или мало. Что ярче, -1 или -5?