Jump to content
Korean Random
Pavel3333

[DONE] XFW Native - долгая загрузка

Recommended Posts

5 минут назад, Mixaill сказал:

пропишу тут явно

тем самым Вы зададите повышенный приоритет того, что функция будет inline'овая, но инлайнить ее или нет - решит компилятор.

Share this post


Link to post

Short link
Share on other sites

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

Edited by GPCracker
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Снёс хвм, клиент грузиться прям моментально.

А я картофель ругал.. :mellow:

Share this post


Link to post

Short link
Share on other sites

@GPCracker тоже читал, но не стоит оно того :)

а вот оптимизация Питона - это настоящее кредо...

@Scharfhobel Совместными усилиями дай Бог и XVM станет грузиться быстрее ;)

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
Только что, GPCracker сказал:

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

 

Одна жды один человек написал: "Когда на питоне начинаются разговоры про быстроту я сразу волнуюсь"  ©  ВЛ

Share this post


Link to post

Short link
Share on other sites
58 minutes ago, Pavel3333 said:

тоже читал, но не стоит оно того

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

58 minutes ago, Pavel3333 said:

а вот оптимизация Питона - это настоящее кредо...

Если продолжить написанное ранее, оптимизация по скорости работы это в первую очередь оптимизация алгоритма. Алгоритма, Паша! Не языка программирования, не процесса компиляции этого в исполняемый код. Алгоритма. Проблема скорости работы кода на 90%, если не более, лежит именно в алгоритмах. Потому как большая часть всех тормозов - это либо неправильно выбранный алгоритм (когда можно сделать существенно проще, и при этом корректно будут выполняться все возможные кейсы), либо ограничения самого алгоритма (к примеру, людям не известны способы организации сортировки со сложностью быстрее O(n), и то это только для самого лучшего случая). И именно поэтому нужно в первую очередь анализировать написанный тобой алгоритм на предмет нецелесообразных вычислений, а уже только потом пытаться оптимизировать процесс выполнения этого алгоритма. Если брать пример, что называется, на месте, то текущая проблема с медленной загрузкой связана именно с ненужными вычислениями, но никак не с тем, что компилятор что-то там неэффективно компилирует.

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites
4 часа назад, GPCracker сказал:

Если продолжить написанное ранее, оптимизация по скорости работы это в первую очередь оптимизация алгоритма. Алгоритма, Паша!

У меня хорошо оптимизированный говнокод, я даже следую PEP8!

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
On 13.05.2018 at 5:20 PM, Pavel3333 said:

тем самым Вы зададите повышенный приоритет того, что функция будет inline'овая, но инлайнить ее или нет - решит компилятор.

forceinline же

а вообще глупости какие-то

хотя и я вот думал, что можно вместо поиска по строке использовать поиск по хешу внутри двоичного дерева...

Share this post


Link to post

Short link
Share on other sites
32 минуты назад, SkepticalFox сказал:

а вообще глупости какие-то

конкретно?

 

32 минуты назад, SkepticalFox сказал:

вместо поиска по строке использовать поиск по хешу внутри двоичного дерева...

подробнее?

Share this post


Link to post

Short link
Share on other sites
1 час назад, Mixaill сказал:

com.modxvm.xfw.native_1.2.0.00044.wotmod

 

Попробуйте, со второго запуска должно быть шустрее.

чуточку шустрее.

Питон

Цитата

8-05-17 23:46:01.760: INFO: [XFW] Loading mod: com.modxvm.xfw.wotfix, v. 7.6.1.947
2018-05-17 23:46:01.916: INFO: [XFW] Loading mod: com.modxvm.xfw.crashfx, v. 7.6.1.947
2018-05-17 23:46:01.921: INFO: [XFW/VFS][c_extension_load] Native module loading error:
2018-05-17 23:46:01.922: ERROR: Traceback (most recent call last):
2018-05-17 23:46:01.922: ERROR:   File "mods/xfw/python/xfw/vfs.py", line 166, in c_extension_load
2018-05-17 23:46:01.922: ERROR: RuntimeError: [XFW/Crashfix] FAIL: function not found
2018-05-17 23:46:01.922: ERROR:
2018-05-17 23:46:01.922: INFO: =============================
2018-05-17 23:46:01.922: INFO: [XFW/Crashfix] Crash fix was applied.

 

Edited by Scharfhobel

Share this post


Link to post

Short link
Share on other sites

@Mixaill аналогично.
 

*** [XFW/VFS][c_extension_load] Native module loading error:
*** Traceback (most recent call last):
***   File "mods/xfw/python/xfw/vfs.py", line 166, in c_extension_load
*** RuntimeError: [XFW/Crashfix] FAIL: function not found
*** 
*** =============================
*** [XFW/Crashfix] Crash fix was applied.

 

@Mixaill замерил время.

Первый запуск:

*** time start: 3.92869420027e-07
загрузка XFW
*** time end: 45.8628795364

В следующем запуске клиент загружается моментально:

*** time start: 3.92869420027e-07
загрузка XFW
*** time end: 1.37995069489

то есть этим решением мы добились увеличением производительности XFW в 45 раз! Спасибо!

Share this post


Link to post

Short link
Share on other sites
34 minutes ago, Pavel3333 said:

То есть этим решением мы добились увеличением производительности XFW в 45 раз!

Сорок с лишним секунд на загрузку вместо одной-двух это нехилая такая просадка. Я конечно предполагал, что этот самый поиск дает существенное падение производительности, но чтобы настолько... Не понимаю только почему это сразу не пофиксили.

Share this post


Link to post

Short link
Share on other sites
6 часов назад, GPCracker сказал:

Не понимаю только почему это сразу не пофиксили.

40 - это как-то слишком дофига. У меня разница вообще незаметна на ноутбучном i7 Haswell.

Edited by Mixaill
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
19 минут назад, Mixaill сказал:

40 - это как слишком дофига. У меня разница вообще незаметна на ноутбучном i7 Haswell.

+1

Share this post


Link to post

Short link
Share on other sites
21 minutes ago, Mixaill said:

40 - это как слишком дофига. У меня разница вообще незаметна на ноутбучном i7 Haswell.

Вполне возможно что либо медленная память, либо вообще от нехватки оперативной памяти клиент свопается на медленный хард со всеми вытекающими.

Но факт остается фактом - на некоторых конфигурациях железа оптимизация дает существенное улучшение производительности.

@Pavel3333, в таком случае конфигурацию железа по возможности в студию.

Share this post


Link to post

Short link
Share on other sites
30 минут назад, GPCracker сказал:

 

@Pavel3333, в таком случае конфигурацию железа по возможности в студию.

В 16 часов по МСК дам полный дамп, сейчас по памяти.

Проц AMD Phenom II X3 710

Память 2x2GB DDR2 667MHz

Материнка Gigabyte GA-MA78LM??

HDD WD Blue 500GB

Share this post


Link to post

Short link
Share on other sites
32 minutes ago, Pavel3333 said:

Память 2x2GB DDR2 667MHz

Ты где откопал такого динозавра? Они разве еще не вымерли?

Кстати, наверное будет в тему :)

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites
12 часов назад, Mixaill сказал:

com.modxvm.xfw.native_1.2.0.00044.wotmod

 

Попробуйте, со второго запуска должно быть шустрее.

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

Share this post


Link to post

Short link
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...