mirror of
https://github.com/discourse/discourse.git
synced 2025-05-28 23:49:34 +08:00
PERF: Avoid calling expensive PostGuardian#can_see_post?
multiple times.
Before ``` Your Results: (note for timings- percentile is first, duration is second in millisecs) --- topic_admin: 50: 19 75: 19 90: 21 99: 27 topic: 50: 56 75: 62 90: 64 99: 99 timings: load_rails: 1262 ruby-version: 2.4.1-p111 rss_kb: 198432 pss_kb: 136612 virtual: physical architecture: amd64 operatingsystem: Ubuntu memorysize: 15.59 GB kernelversion: 4.10.0 physicalprocessorcount: 1 processor0: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz rss_kb_9877: 327892 pss_kb_9877: 263671 rss_kb_9946: 325468 pss_kb_9946: 261671 rss_kb_10153: 326456 pss_kb_10153: 262657 ``` After ``` Your Results: (note for timings- percentile is first, duration is second in millisecs) --- topic_admin: 50: 18 75: 18 90: 20 99: 28 topic: 50: 41 75: 42 90: 46 99: 49 timings: load_rails: 1201 ruby-version: 2.4.1-p111 rss_kb: 187936 pss_kb: 123596 virtual: physical architecture: amd64 operatingsystem: Ubuntu memorysize: 15.59 GB kernelversion: 4.10.0 physicalprocessorcount: 1 processor0: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz rss_kb_26478: 342360 pss_kb_26478: 276696 rss_kb_26547: 340368 pss_kb_26547: 275930 rss_kb_26747: 338964 pss_kb_26747: 274466 ```
This commit is contained in:
@ -53,7 +53,11 @@ describe PostActionsController do
|
||||
|
||||
it "passes a list of taken actions through" do
|
||||
PostAction.create(post_id: @post.id, user_id: @user.id, post_action_type_id: PostActionType.types[:inappropriate])
|
||||
Guardian.any_instance.expects(:post_can_act?).with(@post, :off_topic, has_entry(taken_actions: has_key(PostActionType.types[:inappropriate])))
|
||||
|
||||
Guardian.any_instance.expects(:post_can_act?).with(@post, :off_topic,
|
||||
has_entry(opts: has_entry(taken_actions: has_key(PostActionType.types[:inappropriate])))
|
||||
)
|
||||
|
||||
xhr :post, :create, id: @post.id, post_action_type_id: PostActionType.types[:off_topic]
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user