У меня есть simulink-модель с функцией c ++ SFunction, в которую я хотел бы отправить большую вложенную шину, однако компилятор падает примерно через десять минут из-за ошибки пространства кучи.
Внутри автобуса девять автобусов, а внутри них еще один набор шин, всего 49 шин и 490 сигналов на дереве. Я создал полное определение шины, и все они находятся в глобальной рабочей области. Я также создал полное определение структуры в файле заголовка, где каждая из 49 шин использует заголовок.
Автоматически сгенерированный источник для этой SFunction составляет приблизительно 24000 строк.
Компиляция этой SFunction завершается неудачно через долгое время, жалуясь на недостаточное пространство кучи на этапе 2. Я использую компилятор, поставляемый с Visual C ++ 2010 Express.
Я экспериментировал, заполняя шину элементами по одному, и видел почти экспоненциальный рост времени компиляции до точки отказа. Почему производительность должна быть такой плохой и есть ли способ компилировать с шиной такого размера?
Задача ещё не решена.