En la kodbazo sur kiu la kerno estas formita Linux 7.0, ΠΏΡΠΈΠ½ΡΡ Π½Π°Π±ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΡΡΡΠ΅ΡΡ-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² 100-Π³ΠΈΠ³Π°Π±ΠΈΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ²ΡΠΈΡ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ UDP-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π½Π° 12%. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΡΡΡΠΌ ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π»Π°ΠΉΠ½ΠΈΠ½Π³Π° 2 ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ timecounter_cyc2time() ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΡΡΠ΅Π±ΡΡΡ ΡΡΡΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ Π½Π° Π½Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠΌ servilo La funkcio timecounter_cyc2time() povas esti vokita pli ol 100 milionojn da fojoj sekunde.
En Δi tiu situacio, aΕtomataj kompililaj optimumigoj kiel FDO (Feedback Directed Optimization), LTO (Link Time Optimization), kaj PGO (Profile Guided Optimization) ne sukcesis detekti la varmakodan segmenton kaj ignoris Δin, Εajne Δar la retkartaj peliloj estas liverataj kiel apartaj moduloj. Tamen, mana enlinia vastigado de la funkcio rezultigis signifan rendimentan plibonigon.
fonto: opennet.ru
