A lot :)
This commit is contained in:
parent
aad67af0d1
commit
63fc206c27
153 changed files with 2043 additions and 646 deletions
213
app/controllers/benchmarking_controller.rb
Normal file
213
app/controllers/benchmarking_controller.rb
Normal file
|
|
@ -0,0 +1,213 @@
|
|||
class BenchmarkingController < ApplicationController
|
||||
protect_from_forgery with: :null_session
|
||||
before_action :set_user_update_last_seen_at
|
||||
|
||||
# POST /benchmarking/read_heavy
|
||||
def read_heavy
|
||||
act_and_respond(
|
||||
link_create: 0.1,
|
||||
link_destroy: 0.1,
|
||||
link_show: 0.4,
|
||||
links_index: 0.4,
|
||||
)
|
||||
end
|
||||
|
||||
# POST /benchmarking/write_heavy
|
||||
def write_heavy
|
||||
act_and_respond(
|
||||
link_create: 0.4,
|
||||
link_destroy: 0.4,
|
||||
link_show: 0.1,
|
||||
links_index: 0.1,
|
||||
)
|
||||
end
|
||||
|
||||
# POST /benchmarking/balanced
|
||||
def balanced
|
||||
act_and_respond(
|
||||
link_create: 0.25,
|
||||
link_destroy: 0.25,
|
||||
link_show: 0.25,
|
||||
links_index: 0.25,
|
||||
)
|
||||
end
|
||||
|
||||
def link_create
|
||||
link = LinkCategory.create!(name: "Benchmark #{request.uuid}", description_html: "<pre>#{format(request:)}</pre>")
|
||||
redirect_to link
|
||||
end
|
||||
|
||||
def link_destroy
|
||||
link = LinkCategory.where("id >= ?", rand(LinkCategory.minimum(:id)..LinkCategory.maximum(:id))).limit(1).first
|
||||
link.destroy!
|
||||
redirect_to links_path
|
||||
end
|
||||
|
||||
def link_show
|
||||
@link_category = LinkCategory.where("id >= ?", rand(LinkCategory.minimum(:id)..LinkCategory.maximum(:id))).limit(1).first
|
||||
render "link_categories/show", status: :ok
|
||||
end
|
||||
|
||||
def links_index
|
||||
@link_categories = LinkCategory.where("id >= ?", rand(LinkCategory.minimum(:id)..LinkCategory.maximum(:id))).limit(100)
|
||||
render "link_categories/index", status: :ok
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_user_update_last_seen_at
|
||||
# @user = User.where("id >= ?", rand(User.minimum(:id)..User.maximum(:id))).limit(1).first
|
||||
# @user.update!(last_seen_at: Time.now)
|
||||
end
|
||||
|
||||
def act_and_respond(actions_with_weighted_distribution)
|
||||
action = actions_with_weighted_distribution.max_by { |_, weight| rand ** (1.0 / weight) }.first
|
||||
|
||||
send(action)
|
||||
end
|
||||
|
||||
def format(request:)
|
||||
request.headers.to_h.slice(
|
||||
"GATEWAY_INTERFACE",
|
||||
"HTTP_ACCEPT",
|
||||
"HTTP_HOST",
|
||||
"HTTP_USER_AGENT",
|
||||
"HTTP_VERSION",
|
||||
"ORIGINAL_FULLPATH",
|
||||
"ORIGINAL_SCRIPT_NAME",
|
||||
"PATH_INFO",
|
||||
"QUERY_STRING",
|
||||
"REMOTE_ADDR",
|
||||
"REQUEST_METHOD",
|
||||
"REQUEST_PATH",
|
||||
"REQUEST_URI",
|
||||
"SCRIPT_NAME",
|
||||
"SERVER_NAME",
|
||||
"SERVER_PORT",
|
||||
"SERVER_PROTOCOL",
|
||||
"SERVER_SOFTWARE",
|
||||
"action_dispatch.request_id",
|
||||
"puma.request_body_wait",
|
||||
).map { _1.join(": ") }.join("\n")
|
||||
end
|
||||
end
|
||||
|
||||
# class BenchmarkingController < ApplicationController
|
||||
# skip_before_action :verify_authenticity_token
|
||||
# skip_before_action :ensure_user_authenticated!
|
||||
# before_action :set_user_update_last_seen_at
|
||||
|
||||
# # POST /benchmarking/read_heavy
|
||||
# def read_heavy
|
||||
# act_and_respond(
|
||||
# link_create: 0.10,
|
||||
# comment_create: 0.10,
|
||||
# post_destroy: 0.02,
|
||||
# comment_destroy: 0.03,
|
||||
# post_show: 0.25,
|
||||
# posts_index: 0.25,
|
||||
# user_show: 0.25,
|
||||
# )
|
||||
# end
|
||||
|
||||
# # POST /benchmarking/write_heavy
|
||||
# def write_heavy
|
||||
# act_and_respond(
|
||||
# link_create: 0.25,
|
||||
# comment_create: 0.25,
|
||||
# post_destroy: 0.05,
|
||||
# comment_destroy: 0.20,
|
||||
# post_show: 0.05,
|
||||
# posts_index: 0.15,
|
||||
# user_show: 0.05,
|
||||
# )
|
||||
# end
|
||||
|
||||
# # POST /benchmarking/balanced
|
||||
# def balanced
|
||||
# act_and_respond(
|
||||
# link_create: 0.17,
|
||||
# comment_create: 0.17,
|
||||
# post_destroy: 0.05,
|
||||
# comment_destroy: 0.11,
|
||||
# post_show: 0.17,
|
||||
# posts_index: 0.17,
|
||||
# user_show: 0.16,
|
||||
# )
|
||||
# end
|
||||
|
||||
# def link_create
|
||||
# post = Post.create!(user: @user, title: "Post #{request.uuid}", description: format(request:))
|
||||
# redirect_to post
|
||||
# end
|
||||
|
||||
# def comment_create
|
||||
# post = Post.where("id >= ?", rand(Post.minimum(:id)..Post.maximum(:id))).limit(1).first
|
||||
# comment = Comment.create!(user: @user, post: post, body: "Comment #{request.uuid}")
|
||||
# redirect_to comment.post
|
||||
# end
|
||||
|
||||
# def post_destroy
|
||||
# post = Post.where("id >= ?", rand(Post.minimum(:id)..Post.maximum(:id))).limit(1).first
|
||||
# post.destroy!
|
||||
# redirect_to posts_path
|
||||
# end
|
||||
|
||||
# def comment_destroy
|
||||
# comment = Comment.where("id >= ?", rand(Comment.minimum(:id)..Comment.maximum(:id))).limit(1).first
|
||||
# comment.destroy!
|
||||
# redirect_to comment.post
|
||||
# end
|
||||
|
||||
# def post_show
|
||||
# @post = Post.where("id >= ?", rand(Post.minimum(:id)..Post.maximum(:id))).limit(1).first
|
||||
# render "posts/show", status: :ok
|
||||
# end
|
||||
|
||||
# def posts_index
|
||||
# @posts = Post.where("id >= ?", rand(Post.minimum(:id)..Post.maximum(:id))).limit(100)
|
||||
# render "posts/index", status: :ok
|
||||
# end
|
||||
|
||||
# def user_show
|
||||
# render "users/show", status: :ok
|
||||
# end
|
||||
|
||||
# private
|
||||
|
||||
# def set_user_update_last_seen_at
|
||||
# @user = User.where("id >= ?", rand(User.minimum(:id)..User.maximum(:id))).limit(1).first
|
||||
# @user.update!(last_seen_at: Time.now)
|
||||
# end
|
||||
|
||||
# def act_and_respond(actions_with_weighted_distribution)
|
||||
# action = actions_with_weighted_distribution.max_by { |_, weight| rand ** (1.0 / weight) }.first
|
||||
|
||||
# send(action)
|
||||
# end
|
||||
|
||||
# def format(request:)
|
||||
# request.headers.to_h.slice(
|
||||
# "GATEWAY_INTERFACE",
|
||||
# "HTTP_ACCEPT",
|
||||
# "HTTP_HOST",
|
||||
# "HTTP_USER_AGENT",
|
||||
# "HTTP_VERSION",
|
||||
# "ORIGINAL_FULLPATH",
|
||||
# "ORIGINAL_SCRIPT_NAME",
|
||||
# "PATH_INFO",
|
||||
# "QUERY_STRING",
|
||||
# "REMOTE_ADDR",
|
||||
# "REQUEST_METHOD",
|
||||
# "REQUEST_PATH",
|
||||
# "REQUEST_URI",
|
||||
# "SCRIPT_NAME",
|
||||
# "SERVER_NAME",
|
||||
# "SERVER_PORT",
|
||||
# "SERVER_PROTOCOL",
|
||||
# "SERVER_SOFTWARE",
|
||||
# "action_dispatch.request_id",
|
||||
# "puma.request_body_wait",
|
||||
# ).map { _1.join(": ") }.join("\n")
|
||||
# end
|
||||
# end
|
||||
Loading…
Add table
Add a link
Reference in a new issue