GoogleAnalytics for Androidでの制限

TrackerでExceptionのログを出していたんだけどぶっつりと切れてるログしかAnalyticに残ってない。
ちょっと気になるので調べてみました。

  • 同じ文字1001文字以上連続は送信されない。
  • ")"を含む文字列を送るとそれ以降が記録されない(例:Throwableとか)

AndroidJava開発なので発生した例外をTrackerに上げて
問題点を調べるのは大体どこのプロジェクトでもやってること。
それなのにスタックログが記録できないのは問題だ。

URLからDrawableへの変換注意点

DrawableでOutOfMemoryエラーが起きるのデバッガであるコードの中を追ってみた。

InputStream input = (InputStream) new URL("http://****/hoge.jpg").getcontent();
Drawable draw = Drawable.createFromStream(input, "");

これのコールスタックを見てみると一目瞭然。

BitmapFactory.decodeStream(InputStream, Rect, BitmapFactory$Options)
BitmapFactory.decodeResourceStream(Resources, TypedValue, InputStream, Rect, BitmapFactory$Options) 
Drawable.createFromResourceStream(Resources, TypedValue, InputStream, String, BitmapFactory$Options) 
Drawable.createFromStream(InputStream, String) 

InputStreamからBitmapを作ってました。
縦横のでかい高圧縮なjpegをInputStreamに突っ込んじゃったらそりゃメモリ不足になるよね。という話。

AIDLを使ったService

ドはまりしたんでメモ。
IHoge.aidl内でArrayListを使いたい場合は、Listを使う必要があり
aidlファイル内でsyntax errorなどが発生している場合にaidlより生成された
IHoge.javaのファイルは更新されない。

詳細なエラーを知りたい場合はコマンドプロンプトや端末にて以下のコマンドを実行すればよい。

aidl IHoge.java

sshd with cygwin on Windows7

1062 errorが出てsshdがうまく起動しない。

$ /usr/sbin/sshd -f /etc/sshd_config

で通るからまさかと思ったら・・・
サービスの起動オプションに

-f /etc/sshd_config

と入れたらすんなり起動したお…

zfs raidz on FreeBSD8.2 with Rocket Raid 2720 その4(ベンチマーク編)

次は4Gくらいでとってみる

追記:
/boot/loader.conf

vfs.zfs.txg.timeout=5
1回目
server# dd if=/dev/zero of=filez/tank/tmp bs=1m coount=4096
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 11.528729 secs (372544737 bytes/sec)

2回目
server# dd if=/dev/zero of=filez/tank/tmp bs=1m coount=4096
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 11.293569 secs (380302034 bytes/sec)

3回目
server# dd if=/dev/zero of=filez/tank/tmp bs=1m coount=4096
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 12.024963 secs (357170939 bytes/sec)

4回目
server# dd if=/dev/zero of=filez/tank/tmp bs=1m coount=4096
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 11.535754 secs (372317866 bytes/sec)

5回目
server# dd if=/dev/zero of=filez/tank/tmp bs=1m coount=4096
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 18.699484 secs (229683735 bytes/sec)

6回目
server# dd if=/dev/zero of=filez/tank/tmp bs=1m coount=4096
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 11.827622 secs (363130249 bytes/sec)

7回目
server# dd if=/dev/zero of=filez/tank/tmp bs=1m coount=4096
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 11.952731 secs (359329373 bytes/sec)

8回目
server# dd if=/dev/zero of=filez/tank/tmp bs=1m coount=4096
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 11.583751 secs (370775175 bytes/sec)

9回目
server# dd if=/dev/zero of=filez/tank/tmp bs=1m coount=4096
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 11.511702 secs (373095766 bytes/sec)

10回目
server# dd if=/dev/zero of=filez/tank/tmp bs=1m coount=4096
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 12.167209 secs (352995278 bytes/sec)

はてな重過ぎてSS張れんがな(´・ω・`)

zfs raidz on FreeBSD8.2 with Rocket Raid 2720 その3(ベンチマーク編)

ベンチマーク(zfs raidz)

どうでもいいけどAM3時台だと7月11日の日記になるのね。
例のごとくベンチマーク1回目はraidzで作成。

環境みたいなの

OS :FreeBSD 8.2(x64)
CPU:Intel E3200
MEM:8GB(DDR2)
M/B:ASUS P5KPL-AM EPU
I/F:HighPoint Rocket Raid 2720
HDD:WD20EARX * 4

追記:
/boot/loader.conf

vfs.zfs.txg.timeout=5
# zpool create tank raidz da0p1 da2p1 da3p1
1回目
server# dd if=/dev/zero of=/filez/tank/tmp bs=1m count=1024
1024+0 records in
1024+0 records out/
1073741824 bytes transferred in 1.461938 secs (734464727 bytes/sec)
2回目
server# dd if=/dev/zero of=/filez/tank/tmp bs=1m count=1024
1024+0 records in
1024+0 records out/
1073741824 bytes transferred in 1.415024 secs (758815379 bytes/sec)
3回目
server# dd if=/dev/zero of=/filez/tank/tmp bs=1m count=1024
1024+0 records in
1024+0 records out/
1073741824 bytes transferred in 1.437210 secs (747101634 bytes/sec)

4回目
server# dd if=/dev/zero of=/filez/tank/tmp bs=1m count=1024
1024+0 records in
1024+0 records out/
1073741824 bytes transferred in 1.450791 secs (740107921 bytes/sec)
5回目
server# dd if=/dev/zero of=/filez/tank/tmp bs=1m count=1024
1024+0 records in
1024+0 records out/
1073741824 bytes transferred in 1.339544 secs (801572600 bytes/sec)

6回目
server# dd if=/dev/zero of=/filez/tank/tmp bs=1m count=1024
1024+0 records in
1024+0 records out/
1073741824 bytes transferred in 1.339696 secs (801481739 bytes/sec)

7回目
server# dd if=/dev/zero of=/filez/tank/tmp bs=1m count=1024
1024+0 records in
1024+0 records out/
1073741824 bytes transferred in 1.394513 secs (769976262 bytes/sec)
8回目
server# dd if=/dev/zero of=/filez/tank/tmp bs=1m count=1024
1024+0 records in
1024+0 records out/
1073741824 bytes transferred in 1.561849 secs (687481253 bytes/sec)

9回目
server# dd if=/dev/zero of=/filez/tank/tmp bs=1m count=1024
1024+0 records in
1024+0 records out/
1073741824 bytes transferred in 1.590825 secs (674959074 bytes/sec)

10回目
server# dd if=/dev/zero of=/filez/tank/tmp bs=1m count=1024
1024+0 records in
1024+0 records out/
1073741824 bytes transferred in 1.341407 secs (800459492 bytes/sec)

平均だいたい751MByte/secくらい。
はえ

zfs raidz on FreeBSD8.2 with Rocket Raid 2720 その2(設定続編)

設定が一段落してなかったので追記とベンチマークと考察(してもらった)ことなどをかきかき。
ヤットカヨとか言わないで。
ベンチな設定の前に後々必要になるであろう設定などなど。

zfsなお設定

起動時にzfsをマウントしてほしい。

$ echo zfs_enable=\"yes\" >> /etc/rc.conf
$ echo zfs_load=\"yes\" >> /boot/loader.conf
マウントポイントを変更したい

通常は以下のコマンドで作成を行う。

# zpool create tank raidz da0p1 da2p1 da3p1

ステータスを確認してみる。

server# zpool status
  pool: tank
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            da0p1   ONLINE       0     0     0
            da1p1   ONLINE       0     0     0
            da2p1   ONLINE       0     0     0
            da3p1   ONLINE       0     0     0

errors: No known data errors

server# zpool list
NAME   SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
tank  7.25T   138K  7.25T     0%  ONLINE  -

server# zfs list
NAME   USED  AVAIL  REFER  MOUNTPOINT
tank  96.5K  5.34T  31.4K  /tank

server# df
Filesystem  1K-blocks     Used      Avail Capacity  Mounted on
tank        5732278206      31 5732278175     0%    /tank

ステータス見るのにもコマンドいぱいあるけどzpool statusとzfs listくらいしか使わなさそう。
dfとzfs listを見るとマウントポイントが引数指定なしだと/zfs作成名になってしまう。
最初から知ってれば面倒なことはないんだけどファイル入れてしまってたりするので以下のコマンドで変更。

server# mkdir /filez/tank
server# zfs set mountpoint=/filez/tank tank
server# zfs list
NAME   USED  AVAIL  REFER  MOUNTPOINT
tank   108K  5.34T  31.4K  /filez/tank