Как лучше всего работать с гигантскими файлами исходного кода в Visual Studio

Я работаю над проектом, в котором существенно используется генерация кода. Некоторые из генерируемых им файлов содержат> 0,25 миллиона строк кода. VS (2K5) справляется не так уж плохо, но R # (4.01) выдает исключение нехватки памяти каждые две минуты или около того.

Разделение их на частичные классы / отдельные файлы не вариант в ближайшее время, хотя может быть позже.

Есть ли какие-нибудь хитрые уловки в среде IDE, чтобы справиться с этим?

РЕДАКТИРОВАТЬ: поэтому люди сразу же говорят (очень разумно) «у вас нет такого большого файла» и предлагают способы разбить его на более мелкие файлы.

Это нормально, но у меня ограниченная по времени задача, чтобы осмотреться и решить, что оптимизировать. Моя проблема очень специфична: «как безболезненно просматривать безумно большой файл в среде IDE», а не «как реорганизовать проект». Для целей вопроса представьте, что файл доступен только для чтения. :)


person alexis.kennedy    schedule 16.10.2008    source источник
comment
не имеет отношения к вопросу, но мне кажется странным, что я считаю, что ›0,25 миллиона звучат больше, чем› 250k.   -  person moogs    schedule 16.10.2008
comment
вот почему я так сформулировал это, когда попросил у своего PM побольше оперативной памяти :)   -  person alexis.kennedy    schedule 16.10.2008


Ответы (8)


Похоже, проблема в этом инструменте R # (это Resharper?). Вы можете отключить это? В противном случае изменение типа файла для сгенерированного кода может иметь смысл - по-видимому, вы не собираетесь выполнять серьезное редактирование этих файлов, поэтому потеря синтаксической окраски и других функций, характерных для исходных файлов, не будет проблемой.

person Mark Bessey    schedule 16.10.2008

Я бы по крайней мере изменил расширение огромных файлов на что-то вроде .cpp_gen или .cpp_huge, чтобы удалить подсветку синтаксиса, обводку и т. Д., А затем переназначить инструмент сборки обратно на C / Инструмент компиляции C ++ для них.

person eugensk    schedule 16.10.2008

ВАУ!

250 000 строк кода?

вы должны мыслить не с точки зрения машины, а с точки зрения человека. Допустим, вы хотите передать этот код кому-то другому, можете ли вы увидеть время, чтобы увидеть, что делает код?

Шаблоны дизайна были созданы для решения этой проблемы, попробуйте начать с малого, рефакторинг, затем углубитесь и начните применять больше D.P.

у вас будет все меньше и меньше строк кода, и да, один из лучших приемов - разделить на несколько файлов в соответствии с его предложением.

person balexandre    schedule 16.10.2008
comment
Как и выше, это машинно-сгенерированный код. Разбить его на отдельные файлы можно будет позже, но мне интересно, есть ли что-нибудь, чтобы облегчить мою боль, пока я сначала оглядываюсь. - person alexis.kennedy; 16.10.2008
comment
Думаю, есть что сказать, пытаясь понять, действительно ли нужны эти 250 000 строк кода. Как только вы решите сиюминутную проблему, возможно, стоит немного покопаться в генераторе кода. - person Mark Bessey; 16.10.2008

Предполагая, что вы не редактируете сгенерированный код вручную. (= ПЛОХАЯ ИДЕЯ !!)

Вы можете поместить сгенерированные файлы в отдельное решение, которое вы компилируете из командной строки, а затем ссылаться на эти DLL из проекта, в котором вы работаете.

person Mendelt    schedule 16.10.2008
comment
Хорошее решение. Однако вам не придется компилировать отдельное решение из командной строки. Возможно, размещение кода в отдельном проекте, а затем выгрузка проекта (после того, как он был скомпилирован), может быть хорошим решением, так VS лучше обрабатывает зависимости. - person OregonGhost; 16.10.2008
comment
Я не знаю, насколько серьезна проблема с резарперами. Если он слишком сильно зависает, решением может быть компиляция некорректного кода из командной строки. Если не так уж и плохо, то вы правы. Для отдельного проекта достаточно разделения. Это также зависит от того, как часто нужно менять сгенерированный код. - person Mendelt; 16.10.2008

Проблема при открытии файла для редактирования в Visual Studio? Я заметил, что редактор VS может быть довольно медленным и неэффективным для больших файлов. Кроме того, вы можете попробовать отключить определенные параметры, например перенос слов по какой-то причине убивает мою машину.

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

person RickL    schedule 16.10.2008

Не используйте визуальную студию. В VS слишком много всего происходит.

Поскольку файл доступен только для чтения, вы не будете использовать какие-либо функции IDE (Intellisense, инструменты рефакторинга, форматирование).

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

person discomurray    schedule 16.10.2008

Разве вы не можете разбить файлы и использовать препроцессор, чтобы собрать их вместе при компиляции?

person 1800 INFORMATION    schedule 16.10.2008
comment
Файлы сгенерированы, поэтому все, что написано в руководстве, будет перезаписано, если я не изменю генератор или не напишу какой-либо сценарий, чтобы это исправить. Но у меня нет времени делать это прямо сейчас, и я ищу немедленное, даже не краткосрочное решение. - person alexis.kennedy; 16.10.2008

Должна быть возможность каким-то образом сгруппировать большие куски этих файлов в отдельные библиотеки. Затем вы разделите их на несколько проектов. Пробовали это? Какова текущая структура вашего исходного кода / проекта?

person moogs    schedule 16.10.2008