Google App Engine for Java で使用できるメモリ量
Sen がうまく動かないので,実際どのくらいのメモリが使えるのかを調べてみた.具体的には,簡単な指定したメモリ量を確保するだけのサーブレットを書いて,手動2分法で限界点を探してみた.サーブレットはこんなだ.
public class memorytest_gaeServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/html"); PrintWriter w = resp.getWriter(); int v = Integer.parseInt(req.getParameter("input").trim()); byte [] buf = new byte[v]; resp.sendRedirect("/index.html"); } }
いろいろやってみた結果,108000000byteと109000000byteの間のどこかに限界点があることがわかった.これ以上細かく調べる気力はない(し,意味も無い).要するに,100Mちょっとまでは大丈夫,ということ.
所感
100Mもあればたいていのアプリは動きそうなもんだが,Senはそんなにメモリを食っているのか.mmapするだけでもallocしたのと同じことになっちゃうのかな? 辞書ファイルの総計は,45Mぐらいなので,それでも何とかなりそうなものなんだけど.