[Armadillo:07649] Re: WEBサーバー(winstone)におけるファイルダウンロード速度について
Yasushi SHOJI
email@hidden
2011年 10月 21日 (金) 19:18:50 JST
At Tue, 04 Oct 2011 21:03:04 +0900,
HSC T.Tomita wrote:
>
> 以下に示す環境において、
> winstone 起動(HTTPポート:80)後、WindowsPCからブラウザ接続を行い、
> webapps ディレクトリ内に格納されているファイル(サイズ:900k程度)を
> ダウンロードしようとするが、通信速度が「2.44kbps」程度しか出せず、
> パケットモニター上では、3秒に1度の間隔で取得している状況です。
> HTTPポート番号には依存せず、Default:8080でも同様。
> しかし、FTPによるファイルアップデート・ダウンロードは違和感がない速度を
> 叩き出していることもあり、物理レベルでの問題は考えにくいのですが、
> 何かこのようなご経験は御座いますでしょうか?
>
> 【ターゲット環境・状況】
> ・Armadillo-440(atmark-dist-20110704/linux-2.6.26-at15)
> ・JDK:j2sdk-1_4_2_18
> ・VM:JavaME(phoneme_advanced-mr2-dev-src-b34-04_oct_2007.zip)
> ・Webサーバー:winstone-0.9.10
> ※必要なjarファイルは、「apache-tomcat-4.1.40」より取得
> ・起動コマンド
> →# /usr/java/bin/cvm -Xbootclasspath/a=./winstone-0.9.10.jar:
> /usr/java/lib/rt_org.jar:/usr/java/lib/tools.jar
> -jar ./winstone-0.9.10.jar --httpPort=80 --webroot=./webapps/
ちょっと気になったので、winstone のコードを見てみました。
> 【winstoneログ】
> [Winstone 1970/01/01 11:34:04] - URI Line: GET /xxxxx.jar HTTP/1.1
>
> 〜〜省略〜〜
> [Winstone 1970/01/01 11:34:07] - Written 8192 bytes to response body
これを出しているのは、WinstoneOutputStream::commit()なのですが、このcommit は
内部に、ByteArrayOutputStream 型の buffer を持っています。commit()は毎
回呼ばれるたびに、byte[]型の content に変換(memory allocate[1])され、
OutputStream 型の outStream に渡されます。
これ、早いんでしょうかね?
[1] http://www.google.com/codesearch#5nd3vJ4zpWY/src/share/classes/java/io/ByteArrayOutputStream.java&q=ByteArrayOutputStream&l=178
--
yashi
armadillo メーリングリストの案内