Hi,I'm trying to make a small benchmarking for warp and scotty (later with json/no-json text performance test). My client is a Qt c++ application. I made a minimum code in both Haskell and C++. The problem is the numbers I'm getting.
(Benchmark::pong-warp) - total requests: 10000 , send/received in msec: 3848
(Benchmark::pong-scotty) - total requests: 10000 , send/received in msec: 3814
Only sending 10k requests from my c++ client takes around 1 sec.
What I don't understand is:a) how is it possible that scotty is so close to warp (in this run it even wins)?b) 10k requests I'm getting in approximately 4 seconds. Here is one 2 years old benchmark with 80k/second. Why is there so big difference?
I'm running on macbook-pro 16g, 2.3 GHz
Scotty and warp is compiled with: -O2 -threaded
--scottyimport Web.Scottyimport Data.Monoid (mconcat)
main = scotty 3005 $ do
get "/" $ dotext "pong"
--warpimport Network.Wai(responseLBS, Application)import Network.HTTP.Types(status200)import Network.Wai.Handler.Warp (run)app :: Applicationapp _ = return $ responseLBSstatus200[("Content-Type", "text/plain")]"pong"
main :: IO ()main = dolet port = 3000putStrLn $ "Listening on port " ++ show portrun port app
--c++ client sample (Qt)simStart = QDateTime().currentMSecsSinceEpoch();for(int i=0; i<requests; i++){QNetworkReply *reply = manager->get(QNetworkRequest(url));QEventLoop eventLoop;QObject::connect(manager, SIGNAL(finished(QNetworkReply *)), &eventLoop, SLOT(quit()));eventLoop.exec();QObject::disconnect(manager, SIGNAL(finished(QNetworkReply *)), &eventLoop, SLOT(quit()));}qDebug() << "(Benchmark::pong) - total requests: " << requests << ", send in msec: " << (QDateTime().currentMSecsSinceEpoch()-simStart);cheers,miro
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe