Как вы думаете, что использование C# TCP/UDP-сокета в управляемом приложении может обрабатывать (примерно) тот же объем данных, что и родная версия C++? Если нет, то какая сумма данных, которую мы будем рассматривать native или C#, лучше использовать и что является самым большим препятствием для реализации на управляемой стороне?Есть ли штраф за производительность при управлении кодом при чтении/записи большого объема данных в сокетах TCP/UDP по сравнению с неуправляемым кодом?
ответ
По моему опыту, скорость и латентность сети являются более значительными факторами производительности, чем управляемый или неуправляемый код. На самом деле это то же самое касается доступа к базе данных.
Ответ должен зависеть, в некоторой степени, от аппаратного обеспечения.
Предлагаю вам написать небольшие прототипы программ для экспериментов.
Оба могут обрабатывать одинаковое количество данных. Вопрос заключается в скорости и использовании памяти. В большинстве сценариев C# проявлял себя пренебрежимо медленнее: поэтому нет причин не использовать его. При использовании C# для сокетов есть несколько проблем с памятью (в основном, происходит много пиннинга, которое будет фрагментировать вашу кучу). Самое главное, чтобы получить право, задокументировано here. Если ссылка сломана (не работает моя сторона, но, возможно, это наш изворотливый интернет), у Google есть cached.
- 1. CLR SP с неуправляемым кодом
- 2. Управление исходным кодом ABAP при управлении источником
- 3. Разница при объявлении DataSource в разметке по сравнению с кодом?
- 4. управляемый system.timer над неуправляемым кодом
- 5. Производительность библиотеки itertools по сравнению с кодом на Python
- 6. Быстрый обмен данными между неуправляемым кодом и управляемым кодом
- 7. Как определить объем памяти, используемый неуправляемым кодом
- 8. Постобработка в SQL по сравнению с кодом
- 9. Взаимодействие с неуправляемым кодом в ASP.net vNext
- 10. Источник события по сравнению с исходным кодом
- 11. Сборка по сравнению с кодом C
- 12. Формат TEI по сравнению с SGML-кодом
- 13. Сериализация по сравнению с байтовым кодом
- 14. двухсторонняя связь между неуправляемым кодом и кодом единства3d
- 15. Virtualenv в управлении исходным кодом
- 16. TinyMCE triggerSave() команда - есть ли штраф за производительность?
- 17. WCF - Ошибка при получении большого объема данных
- 18. Есть ли штраф за производительность на удаленном хостинге StatsD?
- 19. Производительность IronPython с компилированным кодом
- 20. Производительность штраф в C++
- 21. Всплывающий расширитель «заморожен» при обращении за кодом
- 22. Звонок между управляемым и неуправляемым кодом
- 23. Производительность Штраф при использовании Text.implicitWidth в QML
- 24. Сбор данных для просмотра большого объема данных
- 25. Смешение управляемым и неуправляемым кодом проблема
- 26. C# Производительность Штраф за Int32 литералов поплавки
- 27. Обработка большого объема данных
- 28. Управляется неуправляемым кодом, значение DWORD для LPVOID
- 29. Следите за кодом php
- 30. Попутный структуры между управляемым и неуправляемым кодом