Hello, I found some optimization points in the module of shenyu-admin, 
mainly accessing the database in multiple loops, which will bring bad 
performance overhead; better processing them, shenyu-admin should be able to do 
better.


    as follows:


1.AppAuthServiceImpl
1)method enabled:batch operation can improve efficiency; check the parameters 
to evaluate whether publishEvent is needed, and reduce overhead.


2.DashboardUserServiceImpl
1)method delete:The data sets that need to be processed are queried in batches, 
and the conversion stream can efficiently process the data, collect the 
specified data and then operate in batches.
2)method findById:Query role information, you can query in batches.


3.MetaDataServiceImpl
1)method delete:Batch query and delete can reduce the overhead;check the 
parameters to evaluate whether publishEvent is needed, and reduce overhead.
2)method enabled:check the parameters to evaluate whether publishEvent is 
needed, and reduce overhead;Traverse and process data, batch query and update 
can reduce overhead


4.PermissionServiceImpl
1)method getResourceListByUserName:The query resource list can be queried in 
batches, reducing overhead


5.PluginHandleServiceImpl
1) method deletePluginHandles:Batch deletion can reduce overhead
2) method listByPage:buildPluginHandleVO uses database query, you can consider 
batch query requires data, unified traversal assembly; compared with frequent 
database overhead, if memory allows, the traversal cost is almost negligible
3) method list:Same as above


6.PluginServiceImpl
1)method enabled:Batch query and update can reduce database overhead


7.ResourceServiceImpl
1)method getMenuInfo;Whether the implementation logic of recursive call can be 
optimized, and the cost of evaluating complexity
2)method getDeleteResourceIds:Can the recursive logic be optimized: if the 
return value can be used to reduce the stacking overhead


8.RoleServiceImpl
1)method getTreeModelList:Can the recursive logic be optimized: if the return 
value can be used to reduce the stacking overhead


9.RuleServiceImpl
1)method buildRuleData:The method body includes database operations, which are 
called by the upper method. Can the method definition be optimized?


10.SelectorServiceImpl
1)method delete:Evaluate and optimize database operations as batch operations, 
and optimize the call logic of publishEvent
2)method buildSelectorData:The method body includes database operations, which 
are traversed and called by the upper method. Is it possible to consider method 
definition optimization?


11.ShenyuDictServiceImpl
1)method 1)deleteShenyuDicts:Optimize batch deletion


12.SyncDataServiceImpl
1)method syncPluginData:Optimize batch query


13.UpstreamCheckService
1)method fetchUpstreamData: Optimize batch query

Reply via email to