Запитання з тегом «micro-optimization»

Мікрооптимізація - це процес ретельного налаштування невеликих ділянок коду з метою усунення виявленого недоліку в якомусь аспекті його роботи (надмірне використання пам'яті, низька продуктивність тощо).


13
Чи потрібно використовувати Java String.format (), якщо продуктивність важлива?
Ми повинні будувати рядки весь час для виведення журналу тощо. У версії JDK ми дізналися, коли використовувати StringBuffer(багато додатків, безпечно для потоків) та StringBuilder(багато додатків, не захищених від потоку). Яка порада щодо використання String.format()? Це ефективно чи ми змушені дотримуватися конкатенації для однокласників, де важлива продуктивність? наприклад, потворний старий стиль, …



3
Чому моя програма витрачає 24% свого життя на нульову перевірку?
У мене є критичне бінарне дерево рішень щодо ефективності, і я хотів би зосередити це питання на одному рядку коду. Код ітератора двійкового дерева наведено нижче, а результати результатів аналізу його виконання. public ScTreeNode GetNodeForState(int rootIndex, float[] inputs) { 0.2% ScTreeNode node = RootNodes[rootIndex].TreeNode; 24.6% while (node.BranchData != null) { …

3
Вартість оброблювачів винятків у Python
В іншому запитанні прийнята відповідь запропонувала замінити (дуже дешевий), якщо заява в коді Python на блок "try" ("виключати") для підвищення продуктивності Стиль кодування відкладає сторону, і припускаючи, що виняток ніколи не спрацьовує, наскільки різницею (для продуктивності) є обробник винятків, а не його, порівняно з твердженням зі співвідношенням до нуля if-statement?

4
що швидше: in_array або isset? [зачинено]
В даний час це питання не підходить для нашого формату запитань та відповідей. Ми очікуємо, що відповіді будуть підтверджені фактами, посиланнями чи експертизою, але це питання, швидше за все, вимагатиме дебатів, аргументів, опитування чи розширеного обговорення. Якщо ви вважаєте, що це питання можна покращити і, можливо, знову відкрити, відвідайте довідковий …

9
Коли, якщо взагалі, розгортання циклу все ще корисно?
Я намагався оптимізувати надзвичайно важливий для продуктивності код (алгоритм швидкого сортування, який називається мільйонами і мільйонами разів у моделюванні Монте-Карло) шляхом розгортання циклу. Ось внутрішній цикл, який я намагаюся прискорити: // Search for elements to swap. while(myArray[++index1] < pivot) {} while(pivot < myArray[--index2]) {} Я спробував розгорнути щось на зразок: …

7
Найшвидший спосіб вилучити всі недруковані символи з Java String
Який найшвидший спосіб позбавити всіх символів, що не друкуються, з StringJava? Поки що я пробував і вимірював 138-байтовий, 131-символьний рядок: String's replaceAll()- найповільніший метод 517009 результати / сек Попередньо скомпілюйте шаблон, а потім використовуйте Matcher's replaceAll() 637836 результатів / сек Використовуйте StringBuffer, отримуйте кодові точки, використовуючи codepointAt()один за одним, та …

7
Поділ з плаваючою точкою проти множення з плаваючою точкою
Чи є якісь (не мікрооптимізаційні) підвищення продуктивності за допомогою кодування float f1 = 200f / 2 у порівнянні з float f2 = 200f * 0.5 Мій професор сказав мені кілька років тому, що поділи з плаваючою точкою повільніші, ніж множення з плаваючою точкою, не пояснюючи причини. Чи відповідає це твердження …

7
Чи ефективніше проводити перевірку діапазону, кидаючи uint, замість перевірки на від’ємні значення?
Я натрапив на цей фрагмент коду у вихідному коді списку .NET : // Following trick can reduce the range check by one if ((uint) index >= (uint)_size) { ThrowHelper.ThrowArgumentOutOfRangeException(); } Мабуть, це ефективніше (?) Ніж if (index < 0 || index >= _size) Мені цікаво, як обгрунтовувати цей фокус. Чи …

7
Чи можна сказати провіснику гілок, наскільки ймовірно, що він стежить за гілкою?
Тільки для того, щоб це було зрозуміло, я не маю наміру до будь-якої переносимості тут, тому будь-які рішення, які прив’яжуть мене до певного вікна, чудові. В основному, у мене є твердження if, яке 99% часу оцінить як істинне, і я намагаюся вибити кожен останній годинник продуктивності, чи можу я виконати …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.