Вопросы с тегом «optimization»

Оптимизация - это процесс улучшения существующей программы, чтобы она работала более эффективно и / или использовала меньше ресурсов.

215
Действительно ли преждевременная оптимизация - корень всего зла?

Мой коллега сегодня создал класс под названием ThreadLocalFormat, который в основном переместил экземпляры классов Java Format в локальный поток, поскольку они не безопасны для потоков и «относительно дороги» в создании. Я написал быстрый тест и рассчитал, что смогу создать 200 000 экземпляров в...

178
Важна ли микрооптимизация при кодировании?

Недавно я задал вопрос о переполнении стека, чтобы выяснить, почему isset () был быстрее, чем strlen () в PHP . Это подняло вопрос о важности читаемого кода и о том, стоит ли даже задумываться об улучшении производительности микросекунд в коде. Мой отец - бывший программист, и я показал ему ответы....

78
Можно ли заменить оптимизированный код читаемым кодом?

Иногда вы сталкиваетесь с ситуацией, когда вам нужно расширить / улучшить какой-то существующий код. Вы видите, что старый код очень скудный, но его также сложно расширять, и на его чтение требуется время. Это хорошая идея, чтобы заменить его современным кодом? Некоторое время назад мне понравился...

75
Когда оптимизация не преждевременна и, следовательно, не является злом?

«Преждевременная оптимизация - корень всего зла» - это то, что почти все мы слышали / читали. Что мне интересно, какая оптимизация не является преждевременной, то есть на каждом этапе разработки программного обеспечения (дизайн высокого уровня, детальный дизайн, реализация высокого уровня,...

71
Почему я должен заботиться о микропроизводительности и эффективности?

Многие вопросы и ответы на страницах C / C ++, конкретно или косвенно обсуждают проблемы микро производительности (такие как издержки косвенной или прямой против встроенной функции), или использование алгоритма O (N 2 ) против O (N log N) на список из 100 предметов. Я всегда пишу код, не заботясь о...

67
Чистый читаемый код против быстрого трудно читаемого кода. Когда пересекать черту?

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

67
В чем смысл правила оптимизации программы 90/10?

Согласно Википедии, правило оптимизации программы 90/10 гласит, что «90% времени выполнения программы тратится на выполнение 10% кода» (см. Второй абзац здесь ). Я действительно не понимаю этого. Что именно это значит? Как можно потратить 90% времени выполнения только на выполнение 10% кода? А как...

44
Как языки повлияли на дизайн процессора? [закрыто]

Нам часто говорят, что аппаратному обеспечению не важно, на каком языке написана программа, поскольку оно видит только скомпилированный двоичный код, однако это не вся правда. Например, рассмотрим скромный Z80; его расширения к набору команд 8080 включают в себя такие инструкции, как CPIR, которые...

43
При программировании, возможно ли, чтобы загрузка процессора и графического процессора составляла 100%?

Это общий вопрос по теме, которую я нахожу интересной для геймера: узкие места CPU / GPU и программирование. Если я не ошибаюсь, я понял, что и CPU, и GPU вычисляют вещи, но в одних вычислениях это лучше, чем в других из-за разницы в архитектуре. Например, взлом хэшей или майнинг криптовалюты,...

39
Как быстро можно идти?

Go - один из немногих языков, которые должны работать «близко к металлу», то есть он скомпилирован, статически типизирован и выполняет код без изменений, без виртуальной машины. Это должно дать ему преимущество в скорости перед Java, C # и тому подобным. Кажется, однако, что это позади Java (см....

37
Стоит ли жертвовать читабельностью кода тем, насколько он эффективен? [закрыто]

Стоит ли жертвовать читабельностью кода тем, насколько он эффективен? например, 3 строки кода в 1 строку. Я прочитал в Code Craft Питом Гудлиффом, что читабельность - это ключ. Твои...

33
JIT-компилятор для C, C ++ и тому подобное

Есть ли компилятор точно в срок для скомпилированных языков, таких как C и C ++? (Первые имена, которые приходят на ум, это Clang и LLVM! Но я не думаю, что они в настоящее время поддерживают это.) Объяснение: Я думаю, что программное обеспечение могло бы выиграть от обратной связи профилирования...

30
Как работает предсказание ветвления, если вам все еще нужно проверить условия?

Я читал популярный ответ о Branch Prediction с /programming//q/11227809/555690 , и меня что-то смущает: Если вы угадали, это продолжается. Если вы догадались, капитан остановится, отступит и закричит на вас, чтобы щелкнуть выключателем. Затем он может перезапустить другой путь. Если вы угадаете...

27
Реализация чистых абстрактных классов и интерфейсов

Хотя это не является обязательным в стандарте C ++, похоже, что GCC, например, реализует родительские классы, в том числе чисто абстрактные, путем включения указателя на v-таблицу для этого абстрактного класса в каждом экземпляре рассматриваемого класса. , Естественно, это увеличивает размер...

26
Имеет ли появление SSD какое-либо значение для оптимизации базы данных?

Сегодня я просматривал книгу по оптимизации SQL Server, и мне показалось, что определенное количество идей основано на линейной модели хранилища. Поскольку у твердотельных накопителей совершенно другая модель хранения, они каким-либо образом меняют игру в отношении того, как кто-то думает о...

26
Как бороться с ошибочными представлениями о том, что «преждевременная оптимизация - корень всего зла»?

Я сталкивался со многими людьми, которые догматично настроены против всего, что можно считать «оптимизацией» в общем англоязычном смысле этого слова, и они очень часто цитируют дословно (частичную) цитату «преждевременная оптимизация - корень всего зла». в качестве оправдания своей позиции,...

23
Data Oriented Design - нецелесообразно с более чем 1-2 структурными «членами»?

Обычный пример Data Oriented Design со структурой Ball: struct Ball { float Radius; float XYZ[3]; }; а затем они делают некоторый алгоритм, который повторяет std::vector<Ball>вектор. Затем они дают вам то же самое, но реализованное в Data Oriented Design: struct Balls {...

22
Реально ли использовать локальное хранилище HTML5 для хранения CSS и JavaScript?

Идея состоит в том, чтобы использовать локальное хранилище HTML5 для хранения часто используемых CSS и JavaScript. Например (псевдокод): var load_from_cdn = true; если (определить локальное хранилище) { if (кеш css, js найден) { загрузить кэш локального хранилища load_from_cdn = false; } } if...

20
Передача аргументов как ссылок на const преждевременная оптимизация?

«Преждевременная оптимизация - корень всего зла» Я думаю, что с этим мы все можем согласиться. И я очень стараюсь избегать этого. Но в последнее время меня интересует практика передачи параметров по константной ссылке, а не по значению . Меня учили / учили, что аргументы нетривиальных функций (то...

19
Встроенные функции в C ++. В чем смысл?

Согласно тому, что я прочитал, компилятор не обязан заменять вызов функции встроенной функции своим телом, но сделает это, если сможет. Это заставило меня задуматься - почему у нас есть встроенное слово, если это так? Почему бы не сделать все функции встроенными по умолчанию и позволить компилятору...