Browse Source

Scosenza/update finatra (#2910)

* Update Finatra Benchmark

* Add finatra source code file

* Simplify clearing of stack

* Cleanup code
Steve Cosenza 8 years ago
parent
commit
840067a4ec

+ 2 - 28
frameworks/Scala/finatra/README.md

@@ -1,29 +1,3 @@
-#finatra Benchmarking Test
+#Finatra Benchmarking Server
 
-### JSON Encoding Test
-
-* [JSON test source](src/main/scala/benchmark/controllers/Controller.scala)
-
-### Plaintext Test
-
-* [JSON test source](src/main/scala/benchmark/controllers/Controller.scala)
-
-## Infrastructure Software Versions
-The tests are run with:
-
-* [Java Oracle 1.8.0_25](http://www.oracle.com/technetwork/java/javase)
-* [finatra 2.7.0](https://github.com/twitter/finatra/tree/finatra-2.7.0)
-
-## Test URLs
-### JSON Encoding Test
-
-http://localhost:8888/json
-
-### Plaintext Test
-
-http://localhost:8888/plaintext
-
-## How to run
-sbt 'assembly'
-
-`java -Dcom.twitter.util.events.sinkEnabled=false -Xmx2000M -Xms2000M -Xmn1750M -XX:MetaspaceSize=128M -XX:ParallelGCThreads=4 -XX:+CMSScavengeBeforeRemark -XX:TargetSurvivorRatio=90 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -XX:TargetSurvivorRatio=60 -jar target/scala-2.11/finatra-benchmark.jar -log.level=ERROR -http.response.charset.enabled=false`
+https://github.com/twitter/finatra/

+ 1 - 1
frameworks/Scala/finatra/setup.sh

@@ -4,4 +4,4 @@ fw_depends java sbt
 
 sbt clean assembly -batch
 
-java -Dcom.twitter.util.events.sinkEnabled=false -Xmx2000M -Xms2000M -Xmn1750M -XX:MetaspaceSize=128M -XX:ParallelGCThreads=4 -XX:+CMSScavengeBeforeRemark -XX:TargetSurvivorRatio=90 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -XX:TargetSurvivorRatio=60 -jar target/scala-2.11/finatra-benchmark.jar -log.level=ERROR -http.response.charset.enabled=false
+java -Dcom.twitt.finagle.netty4.numWorkers=1 -Dcom.twitter.util.events.sinkEnabled=false -server -XX:+UseNUMA -XX:+UseParallelGC -XX:+AggressiveOpts -jar target/scala-2.11/finatra-benchmark.jar -log.level=ERROR -http.response.charset.enabled=false

+ 1 - 0
frameworks/Scala/finatra/source_code

@@ -0,0 +1 @@
+./finatra/src/main/scala/Main.scala

+ 35 - 0
frameworks/Scala/finatra/src/main/scala/Main.scala

@@ -0,0 +1,35 @@
+import com.twitter.finagle.Http.{Netty3Impl, Server}
+import com.twitter.finagle.http.Request
+import com.twitter.finagle.stack.nilStack
+import com.twitter.finagle.stats.NullStatsReceiver
+import com.twitter.finatra.http.filters.HttpResponseFilter
+import com.twitter.finatra.http.routing.HttpRouter
+import com.twitter.finatra.http.{Controller, HttpServer}
+
+object FinatraBenchmarkServerMain extends FinatraBenchmarkServer
+
+class FinatraBenchmarkServer extends HttpServer {
+  override def configureHttpServer(server: Server): Server = {
+    server
+      .configured(Netty3Impl)
+      .withCompressionLevel(0)
+      .withStatsReceiver(NullStatsReceiver)
+      .withStack(nilStack)
+  }
+
+  override def configureHttp(router: HttpRouter): Unit = {
+    router
+      .filter[HttpResponseFilter[Request]]
+      .add[FinatraBenchmarkController]
+  }
+}
+
+class FinatraBenchmarkController extends Controller {
+  get("/plaintext") { request: Request =>
+    "Hello, World!"
+  }
+
+  get("/json") { request: Request =>
+    Map("message" -> "Hello, World!")
+  }
+}

+ 0 - 31
frameworks/Scala/finatra/src/main/scala/benchmark/Server.scala

@@ -1,31 +0,0 @@
-package benchmark
-
-import benchmark.controllers.Controller
-import com.twitter.finagle.Http
-import com.twitter.finagle.http.Request
-import com.twitter.finagle.stats.NullStatsReceiver
-import com.twitter.finagle.tracing.NullTracer
-import com.twitter.finatra.http.HttpServer
-import com.twitter.finatra.http.filters.HttpResponseFilter
-import com.twitter.finatra.http.routing.HttpRouter
-import com.twitter.util.NullMonitor
-
-object ServerMain extends Server
-
-class Server extends HttpServer {
-
-  override protected def configureHttpServer(server: Http.Server): Http.Server = {
-    server
-      .configured(Http.Netty3Impl)
-      .withCompressionLevel(0)
-      .withStatsReceiver(NullStatsReceiver)
-      .withTracer(NullTracer)
-      .withMonitor(NullMonitor)
-  }
-
-  override def configureHttp(router: HttpRouter): Unit = {
-    router
-      .filter[HttpResponseFilter[Request]]
-      .add[Controller]
-  }
-}

+ 0 - 22
frameworks/Scala/finatra/src/main/scala/benchmark/controllers/Controller.scala

@@ -1,22 +0,0 @@
-package benchmark.controllers
-
-import com.twitter.finagle.http.{Request, Response}
-import com.twitter.finatra.http.{Controller => HttpController}
-import com.twitter.io.Buf
-import com.twitter.util.Future
-
-class Controller extends HttpController {
-  private[this] val helloWorldText = "Hello, World!"
-  private[this] val helloWorldBuf: Buf = Buf.Utf8(helloWorldText)
-
-  get("/json") { request: Request =>
-    Map("message" -> helloWorldText)
-  }
-
-  get("/plaintext") { request: Request =>
-    val resp = Response()
-    resp.content = helloWorldBuf
-    resp.contentType = response.plainTextContentType
-    Future.value(resp)
-  }
-}