2015-09-13 2 views
5

Я пишу javascript в течение многих лет назад, когда он был полностью uncool. Размер исходного кода никогда не превышал 10 тысяч строк, и это была крайняя сторона и кошмар в совместимости браузеров.Размер исходного кода, практический, теоретический и абсурдный

Тем не менее, в последней половине десятилетия javascript зарекомендовал себя как эффективный язык для разработки многих внутренних инструментов, доказательств концептуальных проектов и сложных веб-приложений. Поскольку размер исходного кода также расширился, одно внутреннее приложение, которое имеет 2 года постоянного развития, просто пересекло 120 тысяч строк кода, удалили пустые строки и {на одной строке. Как один файл .js, он равен 5.5 МБ. В прошлом месяце мы заметили резкое ухудшение чувствительности Dev Tools в Chrome до такой степени, что иногда не могут быть использованы, а в других случаях Dev Tools ничего не делает для minuets, которые вызывают предупреждение о невосприимчивости, когда фокус удаляется с вкладки. Мы поставили его на размер кода.

  • Что я хотел бы знать, каковы пределы с точки зрения Размер кода ECMAScript?
  • Есть ли практический предел с точки зрения разумного опыта работы с клиентами через браузеры?
  • У отдельных браузеров есть верхний предел для размера исходного кода?

В собственных приложениях нет ни малейшего воображения, что мы рассмотрим передовую практику, если это работает, все, что имеет значение, если ошибки могут быть обработаны через интерфейс, их можно игнорировать. При таком подходе одно приложение имеет один основной объект, который не учитывал (многие, угадывая 1000+) прототипы.

  • С точки зрения прототипов объектов, сколько их слишком много?
  • Есть ли момент, когда производительность начнет значительно ухудшить?
  • Если возможно те, у кого есть опыт работы с большой базой кода, пожалуйста, ответьте своими собственными делами и не делайте?
  • Наконец, с большими проектами, что можно сделать для улучшения отладки производительности (а не перезаписи) в Chrome? или есть лучший отладчик (FireFox, IE или?) для крупных проектов?

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

+0

Можете ли вы запускать тесты в разных браузерах? Возможно, релевантно: http://www.pixeldonor.com/2014/mar/30/performance-ecmascript-6/ (хотя упомянутые разности скоростей составляют пару %%). – usr2564301

ответ

0

Формального ограничения на размер кода не существует. Да, в практическом случае это зависит от конкретного браузера (или его JS-движок является точным).

В наших проектах у нас есть неофициальное соглашение не превышать 1 Мб JS. Более того, я заметил, что если память, используемая JS на одной вкладке, превышает 30 Мб, производительность значительно замедляется. Иногда я сталкивался с поврежденными значениями в массиве строк. Лучшим решением является загрузка необходимых объектов по запросу и их удаление после использования.

Разве вы не пытались разбить такой огромный файл с 5,5 Мб на несколько отдельных? Это будет легче поддерживать.

+2

Является ли предел 1Mb выбранным по причине, или это произвольно? – Blindman67

+0

Это просто практическое наблюдение за нашими проектами.Если код превышает этот размер, нам нужно проанализировать, почему и оптимизировать его. Может быть, это особенность проектов - у нас нет жесткой логики на стороне клиента. –

+0

Крупный проект никогда не предназначался для того, чтобы быть чем-то вроде простого инструмента для создания контента, он был очень полезен и впоследствии вырос в соответствии с потребностями отдельных проектов. Был один крупный разрез и косая черта, которые оказались кошмаром в багах, поэтому мы теперь только добавляем. Чтобы уменьшить ошибки, мы добавили пользовательский инструмент для создания сценариев, чтобы использовать функции, что очень помогло в сокращении роста кода. 5.5Mb никогда не загружается, приложение распространяется поверх 50.js-файлов, некоторые сторонние. Все загружаются в одно и то же время, кроме веб-рабочих 3 файла. – Blindman67

Смежные вопросы