Какую технологию выбрать для массового ввода-вывода сервера - PullRequest
2 голосов
/ 02 июля 2010

Мне нужно построить простой сервер, который

  1. читает (потенциально большие) XML-файлы
  2. обрабатывает их в памяти ( например, преобразует их в другую структуру XML)
  3. записывает их обратно на диск.

Некоторые важные аспекты программы:

  • скорость
  • возможность раздачи сервера. Это означает размещение ( что означает ) нескольких таких серверов, и каждый сервер будет обрабатывать различный объем XML-файлов.
  • кроссплатформенный
  • встроенный в очень сжатые сроки

В основном мой вопрос:
На каком языке программирования я должен это делать?

Java?

  • скорость разработки
  • кроссплатформенный
  • Операции ввода-вывода высоки при правильной конфигурации ( добавьте сюда веб-ссылку ).

C ++?

  • скорость исполнения
  • кроссплатформенность (с нужными библиотеками).
  • однако развитие идет медленнее.

Ответы [ 3 ]

7 голосов
/ 02 июля 2010

Вместо того, чтобы кодировать это на низкоуровневом языке, вы можете захотеть взглянуть на движок ETL или XSLT. Они оптимизированы для производительности, превышающей ту, которую вы обычно могли бы производить самостоятельно, и достаточно обобщены, чтобы учесть изменения пользователя (не уверен, является ли ваше преобразование XML разовым или же может измениться со временем).

1 голос
/ 02 июля 2010

Я все еще немного запутываюсь в ваших требованиях НО .

Вы задаете не тот вопрос.Если язык действительно не является проблемой, вы должны искать сторонние библиотеки, которые могут обрабатывать большие объемы дисков, библиотеки, которые выполняют XSLT.Посмотрите, какие библиотеки существуют для обоих языков, затем выберите.

Далее, если производительность является ключевым требованием, вам необходимо определить, будет ли процесс связан с вводом-выводом или с процессором.Это будет диктоваться необходимостью использования библиотек и общей архитектуры.Интенсивен ли процесс преобразования xml?или это можно легко сделать с помощью одного или двух проходов?

0 голосов
/ 02 июля 2010

сжатые сроки? Необходимость параллельной работы с учетом? Тогда скорость не проблема. Просто добавьте больше серверов, пока ваша пропускная способность не будет соответствовать спросу.

Если вы быстрее в Java, продолжайте в том же духе. Вам может понадобиться вдвое больше серверов, но их можно построить за несколько дней, а не недель.

Переносимость не является обязательным требованием в сжатые сроки. Просто спросите, кто бы ни устанавливал эти сроки, сделал ли он какие-то необратимые выборы. Если так, придерживайтесь тех; если нет, выберите что-нибудь и придерживайтесь этого. У вас нет времени, чтобы протестировать его на разных платформах, поэтому любая переносимость в любом случае будет теоретической.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...