40ms sounds okay for me, even for most command line tools. Oh and I most probably don't get a segmentation fault ;-)
$ time ruby -e "puts 'hello world'"
> hello world
>
> real 0m0.076s
> user 0m0.029s
> sys 0m0.017s
And here's jruby: $ time ruby -e "puts 'hello world'"
> hello world
>
> real 0m1.161s
> user 0m2.050s
> sys 0m0.093sHere's executing an assembly (über-jar) I wrote in Scala:
→ time scripts/couch
Please provide a basePath and a valid command. ("backup", "restore", "truncate", "migrate" or "migrate-all")
real 0m0.375s
user 0m0.415s
sys 0m0.073s
That's basically just `java -jar couch-utils.jar`.A few hundred ms on my 1.2GHz MacBook. And this includes a bunch of Akka Actors.
There is no problem with restarting nginx to update its config once a second, and it's even encouraged that you do so. Besides, crash-only software recovery is really the only morally sound development technique.
E.g. doing a rolling update across a large number of instances by restarting a service at a time can become a quick enough process to be viable in instances where you'd otherwise need lots of excess capacity to be able to cycle larger proportions of instances at the same time. Making full rolling updates "cheaper" both in time and resources also translates to making rapid updates a safer choice (e.g. if I can roll back a broken release in 5 minutes, it's far safer to push out a new release than if a rollback takes hours).