|
@@ -4,6 +4,7 @@ import (
|
|
"flag"
|
|
"flag"
|
|
"fmt"
|
|
"fmt"
|
|
"log"
|
|
"log"
|
|
|
|
+ "net"
|
|
"runtime"
|
|
"runtime"
|
|
|
|
|
|
"github.com/jackc/pgx"
|
|
"github.com/jackc/pgx"
|
|
@@ -22,10 +23,16 @@ var (
|
|
)
|
|
)
|
|
|
|
|
|
func main() {
|
|
func main() {
|
|
|
|
+ bindHost := flag.String("bind", ":8080", "set bind host")
|
|
|
|
+ prefork := flag.Bool("prefork", false, "use prefork")
|
|
|
|
+ child := flag.Bool("child", false, "is child proc")
|
|
flag.Parse()
|
|
flag.Parse()
|
|
|
|
|
|
var err error
|
|
var err error
|
|
maxConnectionCount := runtime.NumCPU() * 4
|
|
maxConnectionCount := runtime.NumCPU() * 4
|
|
|
|
+ if *child {
|
|
|
|
+ maxConnectionCount = runtime.NumCPU()
|
|
|
|
+ }
|
|
if db, err = initDatabase("tfb-database", "benchmarkdbuser", "benchmarkdbpass", "hello_world", 5432, maxConnectionCount); err != nil {
|
|
if db, err = initDatabase("tfb-database", "benchmarkdbuser", "benchmarkdbpass", "hello_world", 5432, maxConnectionCount); err != nil {
|
|
log.Fatalf("Error opening database: %s", err)
|
|
log.Fatalf("Error opening database: %s", err)
|
|
}
|
|
}
|
|
@@ -34,7 +41,14 @@ func main() {
|
|
Handler: mainHandler,
|
|
Handler: mainHandler,
|
|
Name: "go",
|
|
Name: "go",
|
|
}
|
|
}
|
|
- ln := common.GetListener()
|
|
|
|
|
|
+
|
|
|
|
+ var ln net.Listener
|
|
|
|
+ if *prefork {
|
|
|
|
+ ln = common.DoPrefork(*child, *bindHost)
|
|
|
|
+ } else {
|
|
|
|
+ ln = common.GetListener(*bindHost)
|
|
|
|
+ }
|
|
|
|
+
|
|
if err = s.Serve(ln); err != nil {
|
|
if err = s.Serve(ln); err != nil {
|
|
log.Fatalf("Error when serving incoming connections: %s", err)
|
|
log.Fatalf("Error when serving incoming connections: %s", err)
|
|
}
|
|
}
|