В настоящее время я пишу приложение на C #, которое выполняет большую часть цифровой обработки сигналов, которая включает в себя множество мелких, точно настроенных операций с памятью. Я написал эти подпрограммы с использованием небезопасных указателей, и они, кажется, работают намного лучше, чем я думал. Однако я хочу, чтобы приложение было максимально быстрым.
Получу ли я какое-либо преимущество в производительности от переписывания этих подпрограмм на C или C ++ или я должен придерживаться небезопасных указателей? Я хотел бы знать, что небезопасные указатели приносят в таблицу с точки зрения производительности, по сравнению с C / C ++.
РЕДАКТИРОВАТЬ: Я не делаю ничего особенного внутри этих подпрограмм, просто обычные вещи DSP: кеширующие передачи данных из одного массива в другой с большим количеством умножений, сложений, сдвигов битов и т. Д. В пути. Я ожидаю, что подпрограммы C / C ++ будут выглядеть почти так же (если не идентично), как их аналоги в C #.
РЕДАКТИРОВАТЬ: Большое спасибо всем за все умные ответы. Что я узнал, так это то, что я не получу никакого значительного прироста производительности, просто сделав прямой порт, если не произойдет какая-либо оптимизация SSE. Предполагая, что все современные компиляторы C / C ++ могут воспользоваться этим, я с нетерпением жду возможности попробовать. Если кто-то заинтересован в результатах, просто дайте мне знать, и я опубликую их где-нибудь. (Хотя может занять некоторое время).