Browse Source

Adjust a few things to be faster. (#5434)

JT Turner 5 years ago
parent
commit
2843d5941d

+ 1 - 1
frameworks/Elixir/plug/lib/framework_benchmarks/handlers/fortune.ex

@@ -32,7 +32,7 @@ defmodule FrameworkBenchmarks.Handlers.Fortune do
         %{id: fortune.id, message: Phoenix.HTML.safe_to_string(safe_result)}
       end)
 
-    fortunes = fortunes ++ [%{id: 0, message: @new_message}]
+    fortunes = [%{id: 0, message: @new_message}] ++ fortunes
 
     fortunes =
       fortunes

+ 7 - 7
frameworks/Elixir/plug/lib/framework_benchmarks/handlers/query.ex

@@ -5,17 +5,17 @@ defmodule FrameworkBenchmarks.Handlers.Query do
   def handle(conn) do
     number_of_queries = FrameworkBenchmarks.Handlers.Helpers.parse_queries(conn, "queries")
 
-    ids =
+    records =
       1..number_of_queries
       |> Enum.map(fn _ ->
         :rand.uniform(10_000)
       end)
-
-    records =
-      ids
-      |> Enum.map(fn id ->
-        FrameworkBenchmarks.Repo.get(FrameworkBenchmarks.Models.World, id)
-      end)
+      |> Enum.map(
+        &Task.async(fn ->
+          FrameworkBenchmarks.Repo.get(FrameworkBenchmarks.Models.World, &1)
+        end)
+      )
+      |> Enum.map(&Task.await(&1))
 
     {:ok, json} =
       records

+ 9 - 9
frameworks/Elixir/plug/lib/framework_benchmarks/handlers/update.ex

@@ -24,21 +24,21 @@ defmodule FrameworkBenchmarks.Handlers.Update do
 
     records =
       ids
-      |> Enum.map(fn id ->
-        FrameworkBenchmarks.Repo.get(FrameworkBenchmarks.Models.World, id)
-      end)
-      |> Enum.map(fn %{randomnumber: current_randomnumber} = world ->
-        {:ok, changed_world} =
+      |> Enum.map(
+        &Task.async(fn ->
+          %{randomnumber: current_randomnumber} =
+            world = FrameworkBenchmarks.Repo.get(FrameworkBenchmarks.Models.World, &1)
+
           Ecto.Changeset.change(
             world,
             %{
               randomnumber: random_but(current_randomnumber)
             }
           )
-          |> FrameworkBenchmarks.Repo.update()
-
-        changed_world
-      end)
+          |> FrameworkBenchmarks.Repo.update!()
+        end)
+      )
+      |> Enum.map(&Task.await(&1))
 
     {:ok, json} =
       records