Зазвичай це будуть більш мізерні функції в більшості випадків, а не функції, які називаються найчастіше мільярд разів у циклі.
Коли ви робите вибіркове профілювання (за допомогою інструменту або вручну), найчастіше найбільші точки доступу збираються в крихітних листових дзвінках, які роблять прості речі, як функція порівняння двох цілих чисел.
Ця функція часто не виграє від великої оптимізації, якщо така є. Принаймні, ті зернисті точки доступу рідко є першочерговим завданням. Це функція, що викликає функцію листа, яка може стати виправником неполадок, або функція, що викликає функцію, яка викликає функцію, як алгоритм сортування неоптимального сортування. Завдяки хорошим інструментам ви можете переходити від виклику до абонента, а також бачити, хто витрачає найбільше часу на виклик виклику.
Часто помилкою є одержимість калледів і не дивлячись на абонентів вниз по графіку викликів під час сеансу профілювання, якщо ви не дуже ефективно робите речі на мікрорівні. В іншому випадку ви можете надмірно потіти дрібними речами і втратити з поля зору велику картину. Просто наявність у руці профілера не захищає вас від нав'язливих дрібниць. Це лише перший крок у правильному напрямку.
Крім того, ви повинні переконатися, що ви профілюєте операції, які узгоджуються з речами, які насправді користувачі хочуть робити, інакше бути абсолютно дисциплінованим та науковим у своїх вимірах та орієнтирах марно, оскільки це не узгоджується з тим, що роблять клієнти з продуктом. Один раз у мене був колега, який налаштував пекло з алгоритму підрозділу, щоб поділити кубик на мільярд граней, і він дуже гордився цим ... крім того, що користувачі не поділяють простих куточків з 6 полігонів на мільярд грані. Вся справа сповільнилася до повзання, коли вона намагалася працювати на виробничій моделі автомобілів з більш ніж 100 000 полігонів, щоб поділити, і в цей момент вона не змогла зробити навіть 2 або 3 рівня підрозділу, не сповільнюючись до повзання. Простіше кажучи, він написав код, який був оптимізований для нереально малих розмірів вводу, які не були '
Вам доведеться оптимізувати випадки реального використання, узгоджені з інтересами користувачів, інакше це гірше, ніж нікчемне, оскільки всі ті оптимізації, які, як правило, дещо погіршують ремонтопридатність коду, мало користі для користувачів і лише всі ці негативи для бази даних.