Получу ли я какое-либо преимущество в производительности?
от переписывания этих подпрограмм в C / C ++
или я должен придерживаться небезопасных указателей?
Теоретически это не имеет значения - идеальный компилятор оптимизирует код, будь то C или C ++, до наилучшего из возможных ассемблеров.
На практике, однако, C почти всегда быстрее, особенно для алгоритмов типа указателя - он настолько близок, насколько вы можете добраться до машинного кода без кодирования в ассемблере.
C ++ ничего не приносит в таблицу с точки зрения производительности - он построен как объектно-ориентированная версия C, с гораздо большими возможностями и простотой использования для программиста. Хотя в некоторых случаях оно будет работать лучше, потому что конкретное приложение получит выгоду с объектно-ориентированной точки зрения, оно не должно было работать лучше - оно должно было обеспечить другой уровень абстракции, чтобы программирование сложных приложений было проще. *
Так что нет, скорее всего вы не увидите увеличения производительности при переходе на C ++.
Однако для вас, вероятно, важнее выяснить, чем избегать тратить на это время - я думаю, что было бы целесообразно заняться портированием и анализом. Вполне возможно, что если у вашего процессора есть определенные инструкции по использованию C ++ или Java, и компилятор знает о них, он может воспользоваться возможностями, недоступными в C. Невероятно, но возможно.
Однако процессоры DSP - общеизвестно сложные звери, и чем ближе вы подходите к сборке, тем выше производительность, которую вы можете получить (т. Е. Чем больше настраивается ваш код вручную). C гораздо ближе к сборке, чем C ++.
-Adam