Open Closed

abp permissons slow #9823


User avatar
0
heshengli created

https://abp.io/support/questions/9767/The-abp-permission-cache-PermissionGrants-loads-very-slowly-during-the-first-login-but-very-quickly-during-the-second-login-When-the-permission-cache-is-manually-cleared-it-slows-down-again# 通过修改源码,添加耗时日志,发现权限在慢主要是这个函数 PermissionStore.SetCacheItemsAsync

Markdown supported.
Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)

30 Answer(s)
  • User Avatar
    0
    heshengli created

    [maliming] said:

    var permissions = (await PermissionDefinitionManager.GetPermissionsAsync()) 
                    .Where(x => notCacheKeys.Any(k => GetPermissionNameFormCacheKeyOrNull(k) == x.Name)).ToList(); 
    

    改为

    var names = notCacheKeys.Select(k => GetPermissionNameFormCacheKeyOrNull(k)).ToArray(); 
     
    var permissions = (await PermissionDefinitionManager.GetPermissionsAsync()) 
        .Where(x => names .Any(k => k == x.Name)).ToList(); 
    

    速度从6秒到几秒? 6969ms到92ms

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    好的, 我会在模块中修复它

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    heshengli created

    是否考虑添加OneTime.Run(),初始化全部用户角色权限,在权限多的情况下,Cache.SetManyAsync比较耗时 也可以添加Options开关

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    如果用户和角色太多, 这样会造成更卡顿的情况

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    我已经在framework中优化了这个方法

    参考: https://github.com/abpframework/abp/pull/23622

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.8.0-preview. Updated on October 08, 2026, 12:23
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.