Я занимаюсь симуляцией, которая генерирует тысячи объектов результатов.
Размер каждого объекта составляет около 1 МБ, и все объекты результатов должны находиться в памяти, чтобы запрашивать их для различных специальных отчетов. И для создания одного объекта результата требуется 1 ~ 2 секунды.
Таким образом, для выполнения одной симуляции требуется более 5 минут, хотя я полностью использую свой четырехъядерный процессор с параллельным выполнением. И процесс задачи занимает более 4 ~ 5 ГБ памяти для одного набора моделирования. Проблема в том, что я хочу запускать больше наборов симуляторов одновременно и делать это быстрее.
В настоящее время я делаю эту работу, используя c # и ironpython для windows vista64, четырехъядерный процессор с 8g памяти. Я закажу новый компьютер, 24 ГБ памяти с лучшим процессором и, в конечном итоге, я могу купить рабочую станцию с несколькими процессорами и большим количеством памяти.
Итак, мой вопрос: как лучше всего использовать новое оборудование?
Я рассматриваю одну из комбинаций ниже.
- Ironpython + C # на Windows 64
- ironpython + c # (моно) в linux 64
- Jython + Java на Windows 64
- Jython + Java на Linux 64
Движок симуляции написан на c # / java, и я использую python для создания отчетов.
Какую комбинацию вы, ребята, считаете лучшей?
Нет ли большой разницы между .net и java-платформой для решения задачи, связанной с использованием памяти?
Нет ли разницы между windows и linux?
Иногда я запускаю свой текущий код c # + ironpython на своем ноутбуке с Ubuntu (32-битная, 2-граммовая память) и чувствую, что он выглядит довольно стабильным по сравнению с Windows .NET ENV на том же аппаратном обеспечении. Но я не знаю, когда базовое оборудование стало лучше.
И я приветствую любые предложения независимо от выбора выше.