Chcę przetestować wydajność (żądanie na sekundę) serwera HTTP warp haskell. Nic nie wiem o haskell. Chcę zrobić to samo, jak w kodzie erlang poniżej:Haskell Warp Performance vs Erlang Misultin testing (jak załadować zawartość pliku raz i służyć w odpowiedzi)
- obciążenie „page.txt” tylko raz z dysku (ASCII plik 100kB)
- służyć zawartość tego pliku na każde żądanie, ale bez przeładowywania go z dysku
Jak to zrobić w haskell?
Erlang:
-module(test).
-export([start/0]).
start() ->
{ok, Bin} = file:read_file("page.txt"),
misultin:start_link([{port, 3000}, {loop, fun(Req) -> Req:ok(Bin) end}]).
natknąłem się na ten przykład Haskell i muszę modyfikować go używać zawartość załadowane z pliku.
Haskell:
{-# LANGUAGE OverloadedStrings #-}
import Network.Wai
import Network.Wai.Handler.Warp
import Blaze.ByteString.Builder (fromByteString)
import Network.HTTP.Types (status200)
main = run 3000 $ const $ return $ ResponseBuilder
status200
[("Content-Type", "text/plain"), ("Content-Length", "4")]
$ fromByteString "TEST"
Proszę o pomoc! :)
Po uzyskaniu wyników testów porównawczych należy je gdzieś opublikować. – augustss