Java против C ++: производительность в приложении с использованием веб-сервисов - PullRequest
3 голосов
/ 12 декабря 2010

Я пытаюсь создать потребительское приложение, которое получает данные из разных веб-сервисов. Приложение должно обрабатывать данные большого объема в режиме реального времени. Я должен сделать выбор между Java и C ++ только на основе производительности. Пожалуйста, предложите.

Спасибо.

Ответы [ 3 ]

6 голосов
/ 12 декабря 2010

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

ИМХО, вам действительно нужно знать, что вы делаете в C ++, чтобы написать хорошо написанное приложение, в Java егопроще написать хорошо написанную программу, так как она не требует такого же уровня квалификации.

Я бы согласился с точкой зрения @ Джейсона, что вы не должны рассматривать это как одно или другое решение.В классическом приложении 90% времени тратится на 10% кода.Даже если вы обнаружите, что C ++ намного быстрее, вам нужно сделать это только для 10% кода.

Однако я подозреваю, что вам лучше потратить время на изучение аппаратной и сетевой инфраструктуры, поскольку они могут иметь большее значение и слишком легко игнорируются разработчиками.

2 голосов
/ 12 декабря 2010

Если ваш сценарий связан с узким местом из-за пропускной способности сети, вероятно, не имеет значения, какой язык вы используете, если он эффективно обрабатывает ввод / вывод.И Java, и C ++ делают это хорошо.

Если ваш сценарий связан с узким местом из-за вычислительной полосы пропускания, C ++ может быть более эффективным.Java стала довольно эффективной в последние годы благодаря JIT-компиляции и другим методам.

Если бы я делал это сам, я бы предпочел Java C ++, потому что это язык более высокого уровня с лучшими инструментами и меньшими возможностями для ошибок черезуправление памятью.Я бы прототипировал вычислительную часть системы на Java и посмотрел, как она работает.Если бы было достаточно, я бы остался на Яве.В противном случае я бы сравнил с C ++, возможно, используя JNI или JNA для выполнения высокопроизводительных вычислений в C ++, если бы были преимущества в производительности.

1 голос
/ 12 декабря 2010

Обычно можно написать программное обеспечение на C ++, которое обрабатывает данные более эффективно, чем эквивалентное программное обеспечение, написанное на Java.Различие часто незначительное.

Поскольку C ++ сложен, довольно часто начинающие программисты пишут C ++, который работает очень слабо.Java проще, поэтому трудно делать такие большие ошибки в Java.

...