Skip to content

perf: Lazy gem DPS sort to avoid blocking UI #9959

Open
xoxorwr wants to merge 4 commits into
PathOfBuildingCommunity:devfrom
xoxorwr:perf
Open

perf: Lazy gem DPS sort to avoid blocking UI #9959
xoxorwr wants to merge 4 commits into
PathOfBuildingCommunity:devfrom
xoxorwr:perf

Conversation

@xoxorwr

@xoxorwr xoxorwr commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Fixes # .

Description of the problem being solved:

Sorting gems by DPS can be very compute intensive, on some builds it can take multiple seconds, and the UI freeze while doing so.

This PR fixes it by sorting gems lazily.

The result is that opening the gem list is now always instant.

Before:

pob-before.mp4

After:

pob-after.mp4

Steps taken to verify a working solution:

  • I opened stock and PR side by side
  • I compared the sorting results

Link to a build that showcases this PR:

eNrtXXtT40iS_3v9KRRE7MVMtKH1fvR274V5MwsNg2F6Zi4uCGEL0CBLtCUD7gm--_2ySo-SLFkyeF-3c3PRi6XMrKqszKzMrKzSx_9-ngTSozeN_Sj8tKFsyRuSF46isR_eftq4vNjftDf--6-9j2ducnd6sz3zA3rz196fPrK_pUffezqJxt6njaOTs9Pziw3JjUdeON4J3Dj-7E7wYufO924S1w83pAc3TO68KDxxf4umB9H408bnKPSE535Yej66c6fuKPGmx96jFwxmScTbSqYzelu0cQK42dibbkgTNDSMRvdecjCNZg8Y0oYUEDb-kjG4xJ3eeslP2YC1Kzy7dsOxn6SNYmx_-ngWuHNvOkzcRIrxz6eNAVjk3nq77gT_bkiPbjBDs6ou65bibOmabjqGtfF-KfL2bBonr6MwfPC8cY6kbDlAa4I9m3p7NzfeKPEfvZ2pn-zcueGoaNFSt2TVtpuwX4dxMgsS_yHwaQZSLH1LMZtQDhfaoLlpAL6IEjfYPRsWlE3TVBRry3AU2daM5XhRkuM1tvDFT-62A3D4Fa0c3YZ-4omIiqwZzpZqmrZiWZq-rNFFZN20TN0yt2zDcmRFXYZ8FvlxFL6BMa_o9M4sCKD_ImYjV8-92Js-uolf7mQj_E40ufbD6iR0YsdOFAXj6Clsb2Qw9dzTG64f5-7Yn8UnXjL14hxT22qU2hM3dHeiuBAozVkGeuZNYQmTEobcgjD0RhGMp4hiGVumZZgdWqrHb2zy2L_xyi0tg1xpNClCTW8UbcuwVbtDSyuOZm_YFW5lwq_r0DnMfDfIYTQLOkImhX1VLctpVr2vIqhiNlLc9Z4LMFVZQrAEqTUSPAqFyVaWGIevJUhDb-7hY0Q2pJ07zK7tHZ4VAq07urKlK6qF5VJuFO-zu3nsj9zgxH32J7MJFqcL994LBfYputossbd3SQib2ITtWLapNWHv-1PvVYg7MHivQ7xzo7hxpCqsf7Ol8cNDeEqD0WgGr2wumEF5qeko5gNrzBIPZ_SBoI_CkdAffRnhy3DK1hjBNbJkZSnKOTSYvLHrwOuMUzSTWoKC08aWpijgtqzqtmkvb_jWC9PW5-Kyq205y_COPW90dwDWn7uJ4C7pqkVOoLZ0XcjBTXs53wlY5PvSZaqO60o3hCr_FHlLg_9rO4Yhy5a2jEgD_9StpU03cA9MNx2teVHdC73p7XyIwCUoBqk1S4kIn_Vxx33ogsr4L-J3modyg3Wc6YRaz55mP9mdjrstfIUDtxRsxa4zA8_izl1CLJZCVd5y7GZbwfA-e8l5CctWjS1ZsRqFAAi54hZIkDhnOVIurZ2kFAgLk9lhEh_dWFwTVXW5fHFwUbSauXXiIRQCxtirxGhyc8QZ_UbxZrAa2mA6iWaCl6IbzY4hGwZHEEdhqW2LOo-3z73xbFTyIuxmZc6C5-0AeYTKYAyjFQ1dDYI63GZGJIk7ut-NxredeccaWQmj3L_h7OEBVpmkoisB8lUQ0_mCo-p0AD6Fbou2UDGdZU5N5xYK4IUWlFZnrXMrFYzuTTE_q9JMs3gL0NUm2if0BOZzgmWVJYmQIBPyRI1Cvo9AXgy0Lc3WkYjasm3E27KyFK1L5iClP7z3g0CKobUjgDYmKvIpDWNvNMVaNJYo4ShFN9JeOIa3yQQ0JmJn7hSQnVpRLdly4KIheWWYyF81tNKZcEv3GviRtrrtxYnE8z0SY99io4s2LHqCLNxRxlJIUHSBhoPfjrA_9cJv8yp9uRN4pwZy5lTbsLpiiM1kSBf-BCtUHO-6iSv95j15wcX8wTtC0lhFTjgKv868aTTNniH9y2B4TphBmZYKkbtxg-AaZveLRypOeeWj8TODjxnovh8g8ZzlmsVnu9BS6iPxShqn4elP7tRHFlthFCoPVU7Wc6eju2Mgf9q4d6cz_yqEX4JA5Modj68euGt8FSMbFd4md31J6Usy_l9E3E_7nIrMx_fMGaK_LqaeJ7mZfR9Rg4xZ9EMCSU_IeKukCiyT4U7ngyJdT8wJ_SBNrKfMGwWzGGM-dOO7_Wg6cYvUuUrJdno355Yo_rTxuwMb0oey6fZL_3fogGP1DdlRVfzSFV0x-jAzho5ftm7KfVOWNfqhIiOk9w045PihqJqt9jVd1QlLww-trzq2hR-mrstmXzcVW37ZkEJMGdpUEXxZfVMDkb5pWKYFXAW9UBwbRDXdcOS-qjsK_a3L-NtUHBBxZFvua8BCDy1bcxguumSYjg14zdboCZpTdNkw0QNH0_qaagFSReigEWVFw1h1ra_Y6AOIWQpQNdtG4zbSlX3TUtAnzcIIDIoTWRsOBmAooMLeIkOhgyumo-M555AhgzoYYhl9A0YZz200resKoeqqzIZpofOKqdpgqGnqANExHNWgTrI5MBFWgbqtOE5fszTV7BuUB-njHehqKjhCBMAtHTOBt-iSzAgrfT5vio4h07-ajB7DUFMjGsaAiQG3FPC3byiG2gdZB101dNtgSGbfMRSiYmDcmqwRnzFzII7Z7uMhOGvCNPcVDBRsk0GcPdHpX_BUo5wv-IA9h75imJZNMoS3Ov61-g5MOpvQPk0SmyXTQH9MjWZVATRWFo2Ei7ijIfXTZ8Jm0B4GZk3WCBPP8dLE35pCkkDxOwYh26aKv6kvXChVwyAYJoWGbROurcgOzRtmT9FUjFmxDZokWybRk_HSVDVMsIGBqUygwF6IOgbJ5Be876syGN43HEflQgEx42JvGYDTwTvgY-h4bkD-0JyF6WSWC4INEcYQDIg0uqoQRUuGhCAqEXffSIE1ZgX-9PHy_Jj98ae7JHmIP7x___T0tPWANSy68Z7ht2-Nosn7ByDBfmyylWmTjMb7Af5v-3ZvdxyE35xvf9v3ZDW-ezbuLqNfb38Nhlezo6ND3XNuzr5dR-NT5UrX_vZwl-x92ZHHm7fWr-PhZfjTwW-_6UhAbCbX4-jLyV5wv__l7ln_Lbn-9niPft1Njybx13B2Ejz5zi8HP33-4ewqPj1-PrwfWRfXmmZ41unsLPG-uHv35v3FwzD5ZjqfH8_G1pN-ebR7aKnHshnsXIa_Gok6Hej21W10ORre3483Ty929fCXswvrQP3h6viHp_iHmRkb9snF4MDXhvv6fPfbzt7J8-HOnmUGs1vFMdyDvbvnr8bs5uDUutu-Cr5Zj8nTjz_uHw-Ni8ev3p568_nx-fbCfbqZfRmcbv94vhn9crJvDm9c9zf15yf7ePRD7B78dHzmhuYvR8-_TJ8OR7s_7oaD08Egut35Oji9H5i3u9PtH0727gfDXwenl4NosDvZ-eEXNRrdeHs7F1fPs4do6H3dOfrx6dI6MOwdc7Z3aJ3fbxru_tNv2x6b0PfZjH7kC1vMpzf9xWwjW-sgOFhB4HRMmD1P19BFQKaLBaCqNQEi6WR3gVMdmLdOgHw5zgC1RkBmwISx2I2AZMsEQLUJkBniLn1klkKgaDYBWo4ptmw0spuMaxeCbB3oBEjLWhdAtvJ1EQm24giAzTMIs1sz6I_vRdH8SHHN1MeSzb249-SZMB-GXBf6gznbMXynGxe7yQfe5Jhv24fkdmTJefLEpvQy3p7Djd6nnIkQzcR30ROFthyGfEB4CIPjY_7m2LtF3pqQP23A_Yvh16UuEzU99JLU_RMayPy_olc_ztzAT-YYtpy6WCmy5I8ztyt9KMVBRK5_NJ5LWbKD6hMGRaM7bjCKeZGCe02jpfILcgrHWcsVBAbrh3DLwPwwHXgKm04POil9FXoJB5q5oTQ7KXOQQ8FGaOyNafO-SJOQ_zwLORt4Nw6C6NoNlKwzt3yOsWfqjuF-vz_CpMfviVvvC7Y3Eg9Rq8G90xxEymCkDEhsV83dbxp6l_6npR6qXOXj--7MOZsFkFU_XhM7BHIFA4SHnQYswK9liEWseBpmPFzTcKukS8OmlxJ_K52GUtF0Ny7Ud3sdHNkLWA4lkyQqsOBpuXg9bPniuQ9RWGlFZE3-KtUE6QldkPI-dOLPskGsxiStzCQh9UGZj0GQ_PwmtlC_8VeFrMiOlmTLcnbUdncdUrITRLFHhSpush6xKBEURk-Ppex5p7kvUWoZ60c-A4tLFZdSSfmnr1MHHjZFsETv0L7Q2wWtRK5gc_r4vzDo-C-xxN4uZ3aJ0JskiqoZvWdvyncl1qBLyA1dRHAzYnGE5VaWj60Mu0578Q-2FSuahz-8hv8s6_eHh_yapeHQCyZe8ndbGHg81mF-zmYY0Pz0hnYY12FXip3KAZyLsrZRS-R48LaW873crzeJ4CEtMePTm0G8FstZIlcMjz-m4bEXy0dXovGmwe162DKY-KG7roWvQrAYYOXF8gFWgNcSUoQBbS154XqMxmCMQwronBv8fFYKHIpmugUJBXw6Sm1FU4AGHmk3759uCqbeyI_XJEYCMcEEFA9btL8AXIfoDKbT6JZHOusQHVSjRCgXvfVHJd-waKST4Ajwbxoj6835WxfTdNoEYsXI2EPpvMNqKaBnp4T0FbVhO4qSfwFlGMQx7d-E2DOf3q_F4U4dB8SE9yH220uikzaWRU68zZbwotzBdagJUToND_01uaMCuWKo9JBSVexxJz0RyLxpkMcIxoeBO1nHZBa0ipHRM4k_XD6uAnkdk0ZFlQkVOK1jynJiwrCyR50mK4fu7henfyLlz_Yv-L4F_Ym48sa_TfcU-I90U4Gh5U_SnQIp8ZPAI9eD7S2kOwdH4cMsYcP5tEE1GmzNR7aziFnpYGOIKq9rnHry3LDcTRF9FnvlEqJWjOvZzQ3KPBL_BprPPaEurSwW-rRi5UND9etkzgujuoxpVAR6_N_zGbmkrXiT_IRiuljMJtdU3pOda6xAUw1sVudTACtLRzLgUei5G1IDK_QIddWj6fwSwRpqoZG_DeY1TaJWauTdoegRCXROwCPOLZQ0ZoiG3BUzDz5TTBQoLGm16DabuUOknaInUNmHgfC69zs90ZqBW3JbdymuOiOnNUPRWhBKFZg5Ulsz4vnXnJUtOHk1dj54nChp7R6erMb58qx15cVDXpy9KM_6Em40qUAbM9KC6ygIUkUoprjLhFVZYjtmM9qIW1SY_QTh6YV_C1tHi0qnqRveYXt6mO6OdBBbQV-xr-JNvTFDZg0OveCmG48KKmXN4R059yYIrcbb80GwihEQS7O76z8teAKj9Q6aUZ0drYvWvkLKSTm6CvhwFKE8coWJzFtYhWWxf-sHpzdsPUVbbJHr2la295_Bo1QjO5DViFM-v1DHvI_vc4eC-SH8V1YM-hMuZuDlECis3fVRoYm60hGVQ3A_6FsUTX75tLGpGtaWZjsaTpMauH8gLTbF6dFPGy4trASXFmKo_NfP-AsVzlTkiZNvOFnJ5-bj0YT8Kcl7ZplnFDbPs-iFvWYBEeu3uAgyd-yKD26BoeXl0o9HV-SfUKkuVVVP2RUVe_v7KJo6-mkvRRl67JwHc7FSNy3AI_I2g8B9iMmtS2s_4tl1zKE_bRC7GDjyQK4fxDXUDgvxX06L0SmgFymx9d734jZCe2wzJrzN4RdJsfsNOnSH94XOWVH5dB2v-Hq8nBTfTN5B1S87MLZIhe_3LydCMHVDgfy4QStzU6iGyaaKHxL4uBNTEqoPwuJB3i7Hqp31zB1o4U12LHaRBrtbog2fAy0i82se2rBTqBquMs-6lascqka-vJE7b8PmQIvI-fHCNgI5YMTC5kVKKGwY-AHVNrTOLC5xYcIOvclRFgmewJqkZettBE9psc9gFylBJ6b-9SxpV2cBsoZX7KB0C5sIpmYs7KjvclQGU8PX0kHXFmskwtYatVYSDGYRNVuHlyNzqNopSNfXFvZzqBomZO57y_hTsBolYcZ18Bj54y6Wogr-ZoLssOEa-kXHCd9Opnq-sIYiPN74vlVfUqhO6GlyR8C-RMiDLNTbiJDGvY0CKd7bKFwgKZzMprVW47zqjiyin9f7IHmmZilyBvVa_KJi67UU-KmzV6Mzf73B_iPvxlziTgtADvw2WuXk2ttoDZNZuAv2rkpqkUtshMsM0sq0-Mq7hGncqKTXj3Sxlxz07YTgFxzWO6ArUMrP3h56bkBXcUXB2whWb2TpTqxG43G2b4Yr9cYZtdNmt38V7mGbC0SL-xfiN_WSZQ8FOghg0wjx4-cIPhKRpqfZj48spJTchwcccMo7iPMESbppjxU-QD4DaZ2nwfiRBPkC0xKXglC2h7AsLEYym1_yxCshWfq-dFSAKIhJffrNRo6zKSygP3epDuSDdD443-t9RhBOEL1tN_TjO8ietB3gioTe8M7FiU_-bo_F_uzPnal7gzz4B4l608Om8o3__EH6fUqZtA8ynWR-OY6QFcire8ppgvR-FSvHpBsNq2SUF1QSeOMiM0MXW6WnTi-eIrrixxtfIg5XekOE2zmZ2h951zRH513Ltg1B0r9PbycweumpiQ-SKvfSYyEfpIPN_L8eyzHgVqgPkiX3EOQF_sgnGKXHg86iDIoTjiX_FidDPInJkXSC7REUcEhFFTV3F6n1uKcYxp9pbzWtqMqYllZU9TRVfFtpSOJD6IFpsaRJSSQZrB4oK9PGg7TGmldsJ3d-LKV1tDTFiixl3O39jsRR_MFl4P2YIu6X30d8yl9yThov3ynmpip_L3YqZQKL0lna6IS2rYGQ7SUxbJxI3spzjyUItRVCa4XQWyGMRYiPbN-urCpavi1IHStpzeXnox8v96AHuM2PlXzPMX2Hs2sUMUo7_nQUeEmPByISj0QgUYbTE2OTbTAsVQQkvUmC0mPYHyRogqRtWVty8WhnNsXkJD2eJgKn8zdqvdBub7L_BIE1nbLA8lmGw8buDehP4AH2sZn5wkmgCV49QDuZ2ORMJFdy5D9LdAOc9F_u5OEvknBzolTcrNn7PWUaNFgQlnffqbKMNJ78PRPFNAuB4gfKHBU4ahlHA47WhCNKoipvKkZZFkv8721q6DyoMJ0olK5ERd7SN-UtG1So2oyLcqo-LPQHUTeWyNmuoKlA01vQyMPuZQYxlmC-pPy6l5h6xgKSDBG2PKJFJJiLmosLCDBK1g7cF3_K7xzo7UTT6ewh-TdTuQqE2QphtULY3RQbBznrtPnizpOOphBm8n4pKoR-z2KXVj1kvxPYVhaaQ3cMy0h_LGpxrTaeb-b_CRpp1Gok6eA7laadQdJk5yo5iPaYQvbeKX9OLT4Bssi6Inpk1A3BqFehS-IGs3UZBrPR_byXL7_vvjOhVCpXvmJtEATfxnu5sgAwrvQUCOmUpBuPsntf0lUho5TV5KQ92I7CGRZLWh7dsXSLVhKsYyJpduFTdVFcWLv-hXRB-UdqQp2c6zWuHp8giddGkiz6OFrghtKBi_1BLFtxLuW2rDUK-RDbL-Ql7j3TNkzqH7rk2UBav0TTAE5IF0_RWOon5vaRW_y0C_pStxH223BecoJkrK2qG6i8ZOLiLL7KUbk6MaHVFx1Jw1Ffiv1Ma6naCypv66LKq73fPcbBFxUKM8o1FHeO-hNEuQn3G7GnIt1EU0lP70OJpYgVegGbeI4u34Biwte2PWxsxcjDpDB9vorQZEGZa5fAd4ZRUnHFbHTpTLVG2d8pCjNXEx4c8gXyna7XNvaftkLV6aXR6lgOAgQ2UV63iIQ03YIBwcK99lAyVsuZKyruF2lU1KoTqq_mg-LK9_U6oXrtkudl-berEUuXvbxTSHbSbENxoDI9khsXi9R3irGp2KUlKJdjFgoxQrYssaqNxWBIXO5wX8-mmq53qWg3-bIOdOl7Jt-cruhQLriyjLa2qThtGAozA8KKV145Bcqq0QVOqfCR71szh-IeU5jA8RSJDmeTCSzqOH9Lcjf1oykcT0gDBAUxAjVDvut-RGUh0jyaLZIoyEsjN8T1UVL6fEKRMFtulIVG1rVyK_8C67ayPv-1AuG0QuAy605GyKw1PD9HD7lnxorOewMmMwMUBCGmRYnt7QyGYhuSN4KzhYLXYB7DAGDFgkOAtTt_JhoEIQitrn9ZXgFJMXgCyKExHffjiZvaBnYtWoDru67cbGNSVCwEflrVRWV4AVahF6WkT6UFqkp9mitkhbwuf18fOTZ2r9xqpV8FgpclgV5Ss4RSItzyz5hAJKoN7lBdRO4Q-CEdiJKe7ryQgsE5LfZMHQcIyd1pdh7s31-Z3hjs1eU7zyl_gJOCLJBgP2CEgmg67uS0OlrZv2xwSJuzkXWpyaU-aeFo6m36ZYj6pfc2VYn3B4vEGDs6Hhlzstwws1gceEv5u_xVRkPA2uGWfJtnGm8BZJTFvEIKEo1iDZwSQbDqlB3Md6a96C-a8hItm4WPHjyU8dUkGvdzvenfALg_ovW0L6pvJVeZrr-qKugxLWHVhTj-I31S0do6fbJr9GnbCxLok_s4l9ifrVFfJT5r158FLVHkxZjMsdQXoZxaLyucoCR22QlVbFGQ40JM5bLYKrK1KLfkitV6dZkUZmVxmS_EyuWki6lLyR1-KuNfSPDqplwxauZ8h9-4Kf1A61nvmF2VU362VAqwvXPDolaE9wx8iNuzcNEsu9svPqD8D_FXq5OeZZiHYGsuXXz_U62J3ttbL8qgtEUpbMWG0GhXZR7xuf4guTnuVUw5uKsx394pA39G-ajEirYhoaoovJYovJrgQbFwB_ae9yMTrfy9KrENtcp75tqn_eNhW4kiGXYaXBWLJeg-SBVPR0gp9pYgs-R2SuGdzsItABUM74yryGJ4w_SxK6pdUu0lWHcQKEkrxVtcrP5IZfDLCLNcBq4vYvFJntpQaiOMIWQ3oWAypjPieAM74U_wI7MkaYixC_ds6s8mRfohn638CT72A40hGvkjBCIQQhyxIBucP2Wikf9iWzH5r_I-Uf44zQAUYLyuLtt9KuAq21KLyRGlh2uJIeJJ8YhZxByy9MrpHSP3R4-TiCIkQdllbFEgU8_4lAVp6SWHd2ihnBTwmJCy_HgWW1V0X7r2kifPC3s-D-nnlBhmd7Jy4nTZNSvslhg6Bl9KLZR9OiEJwN8Uc5O_0tJXpTnK3-rp23KUlr01Km_ZHOZvzcrb8pzmYNbLO12uS-_Y2YvKLOcATo5Zme4_9t7-CbkLxaxxSDKnQzQmLS7IaehRHUn505AM86rFDU3XnCIwI5-Pt9nosmb2LVvJ5bJuv1PMirtpc8-yUuhR9JRXcmAQEq-GSbfIeFUHwi6e7s904p-Via8trdBa14ljD4lCrMZ0Gav0P4qGbZ2_SNpfpOwbqv_by27YrywcuD6VTFVuUP_mRhPpu4ytlBdhia3vC4hz996nW_q_u_AmD3RiTrqeU1pSABncR3MAwMv3w2tY2HsPb-tMfTG9iMv5pxvRJfKOS3ZdKc-9YFdxXHjCZxPncjFOlGM9SCzzw3ggPWU5WRyuxkManWh8V0RPhy7a6BUpMM70MueX0lJTNmrmWO7w7xxwjiJLhe7iiwK9Q8hgNEWy8N-9REjRWiOjEw_cmKwSGpXDk8_86wuQbpy3xH4rxMa7uuqEcxJdn7BECa3Cb4uB1HIs3RbYPLGj4uwc3BV3RJaEN7oY3cjLohu9MbhR6oIbKmtwS8HNKrENi9PzDVC68RnmqLxBs2Koo9WEOo0dpwmXtudSOuXNgJhlqZjm_19eSK3OWeWQQynFHKWXuE5Ds2pXl226m4KM0i6rzJ1Dn2jPAQttqqHFpmdWA6R-kMQbHPn1FhIV6NJtV9N5PUq6vUrp_frQRAS-DF2mLB6beXbyWwhAghRKjHelLNeRNVQD_xnFGhhptnGAbwujoZB96bAGmkowpL0hL10r3h9CVTlAccGXdOZTo3VA7ANxHnGKd_OUrR8SL1quQygPnZ8TFFZob-wh6ds0nG187XksjkaEF2agJl4UIct9wAfhA0EO0lJolVjl1TCoeM-vcpGyrz1L2ZcD62BPhHBmyVxm2xP1wy_KRca1KAIHFmNoAa48fn7YskZQdVEE02seRMeyFoOJVbrPxerusXsloC-MuIRbuY6bSl8qgquX5JJc5nJdtPRFuKa6BjkbEK-NS2upF8HYKM69G_L7pKPJZBYuSr_OJaQ6VpYgrgPOml7IINfBlnf6F6UYMPwoUpldCyMSEfIOQF7T9usBa-eQsBYku9t0sHxhXIdMDGxicwGVdZznHeunLhNvIlopI5GObhhvsttsapFOFqOnWrha3jCkZtE2c1tRKALdTMXcoXp4mIi8S6JaxPXgYq_gMT6iH-TRMAPPTHRVxoFTbPTRya1wcZEous3I1_Q4hxMsT8XvqQq3WZaY2TRmspuauRbw4suedYCZPWb6VdPbXMRLg9-fRt-8sB4qt_BQmBaCufyIWrko8wXR9MKvOroFbF4ZFXi1FqOAZFPEPUeadlRtZIdPFsUY4Pzg35xYz5MJJVsrAKa9ZRJe01UBsrmKqyZ-tlbKlSpOFVzC0aAlKPy1ZnWOxRf8PZf_D3KlKL2AwLEvAnIHUPJvJLVQP36Ii6Lgva8zH-fBxg3HHL5T6PBCqYZNdBVXIKu9CEv4depBroCvt3RLTM1yssWhsCaaxkvFY3EF_7MrEbPcsU2NH7aoFoMLxy1KGeCuzVgvhSWJU-8WiG5haS5IclGZzgimJmYZRftlj1y_onS3L7rGtK2EYTB2sgwLYusUsHMLTmXOuevcGV2R6-Yndag5ldycLaWjtMhO7nuvQlStDI755KsQ0OoFZ-ErJsslRzgG2djSgu5UjsYthAO0g-B1p2901E0WSXSmatbNvhBPcEpidVQjKetFqMpd6F6ef-1O0K5MfvpZ2u4EnMoBNDb7pR2mxeiFyOsdjbhcmhIUIsv1Zilh_qArxjvZuZvujQlcLQ4K3CIdjRRXKUDidf-rkC6tRlm6i-17o3BqU9kyvq_diEhdedZQu21Vsfunldi__PxSV7L6S-qzEZezoGHx9GxnekbDpC6YjHxWS6XlrJkOdlc1W4SzGg52p2y1WIpyENmdrr1EAstBpyiCney02qaqQmxaMKMTaW1lLWVtidPZrZ3KEQFBcXh8ukx9OphqTW0Q9AXB7EyxVSPLZwS7ktVf6I4sZPsWAm6PrXuFgwMvmpcawNRcoxKhFI5TTUKJqt7J6mtGiyhV9kH5uDpRNleVJPEAfvdmrPTYRn78k_YViqVDOJYNmmbHyMCunAUpJQ9WIeR0c8WLbEM-n34s-L41rhaSBWmCeIX-6HKmFtd5woKjt9t6XanjdD6SKqM7EGyL64oESGeS2ssviDVRO5oeB6c_qokSRquDCdf1l3Rf6oYXQYukitCnOz2jjoF85apyrws5U5hLnn_huJ0MsF6rN8yYV_vSjV5VZcopnFUoOXU9wy2Cm3vPI-8h5b-Q-EmJdzC2hlxdddIqd2phUmSJFm8b6d5EaWFjpj2X7BrFJ7V-ximW7DdAPCHrhGZLpLt1QX3Js1FxnqNiA-hiUQ2tjv_MOFcloxM5ve18YiutP2rF_i61YlWQdq4q7WxV2vmqtDNWaees0s5axWo5WKW0s1Zp563azlu1nXFqO-PUdsap7YxT2xmntgul2s4XrZ0vWrvMaR1UuZ11WjvrtHbWae2s09pZp7VLndbOXb2du3o7d_V27uodLGU7d_V27urt3NXbuau3c1dv567Rzl2jnbtGO3eNDqtM1_I6-59d55ulLcUNmYYy3yUlwUtqfktHzFgZfqlM6P9zEbCirv9YWW0dJBUfkSfWCfiLR5E2u5qR9q2vlhdOZpWWdFDCDRBCPdG9UW-ttWwrr5zgWwxXmO0rzCIqLFsPkNmdKyztf-jxsSF1v1xgqaiLBZZcxJnvTwqS3Zfea2_gBIyScHPOkMIs9PTv0dTrSzxTqZEysWkEzAW4EYJLrZSL7X_64TTh82XNd6WmH0nE5xHTj3fQ4WVpcD3HJwAzeZbQX-w6Tc6uL8-P6fOI9IM-zJZ_hKUF32zFZ3BHY7xPyXB9UnUHvQ-hxkfMU6ZfIqXF5tPrPNVqF9QVhpB9NLUWQV-hUW2FRukKBklpQLCaENQVEJp6qa_QyyYaxhpovFpKFN1xtEJM0p_L5YR_I7vaBeXVgooPBZmCpPKfr-mC-vouWBQnFl1gP1_ThVXEtp6C_mYKxpspvFqcdNOg_EDGyPRnHSObCDiyLQsE-M9Odgvl4U_0icvVlakTXkOHDYxQ6HD6c3mHD8jD6aAwVYxVDPF2NJ6n51RX19ROZNQ12K01dUV77ayvLvjLV-s1zZD-WmnUNFMTVv30Z8dlv44hxnoG9FYvSFkRvwHcXq3XK0kD3an4FgJLp2EVAWefW3n9cmzoCmU7c4PGfy4XodrBGyv3-RUWRalll7Iuvqsrj0F7tQ9i65bog_Cfr-C7vnKf9XXxXV0X35WVQ463Ga4aNmqvYcob9L9-GG82QeoahmG8eRjKW4ehrGEYaxPztRFah4xpb56cdYjIKjT4ZaANCOaqPFx9mTHWMN63G6hXLxSKbNAWYB6y85-rxFi6YopBGv-5Qoz1d3NzXqNYDSiq1XkmVo-4GxC0JeN9nR_dNDijyW42IBhNSTDtjY75W_FbeM_Tsvzbz_TFZ9TzDdmnm3nCOuaf1GIVMn_tfXx_hlvOT2_Yt7swuL_2_g9obQO-

Before screenshot:

After screenshot:

@xoxorwr xoxorwr changed the title perf: Lazy DPS sort to reduce dropdown lag perf: Lazy gem DPS sort to avoid blocking UI Jul 21, 2026
@vaisest

vaisest commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

PathOfBuildingCommunity/PathOfBuilding-PoE2#2184

I think something fixing this was already introduced? It's not ported yet: #9921

@xoxorwr

xoxorwr commented Jul 21, 2026

Copy link
Copy Markdown
Contributor Author

Yeah I saw that, it improve things, but ultimately, I think the DPS sort should still be lazy regardless, no matter how fast the calc gets, it'll always take time proportional to gem count and build complexity, and blocking the dropdown on open is a UX problem in itself.

@xoxorwr xoxorwr reopened this Jul 21, 2026
@krryan

krryan commented Jul 21, 2026

Copy link
Copy Markdown

Does typing in the field work during the lazy sorting, and if so, does it cancel/restart the sorting? (That is, was this the default behavior that was inaccessible because of the UI lock?) That would be another colossal win, on top of the basic non-locking behavior.

@xoxorwr

xoxorwr commented Jul 21, 2026

Copy link
Copy Markdown
Contributor Author

Yes, you can filter search, it'll continue to sort in the background, UI is no longer blocked.

2026-07-21.16-25-48.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants