ArrayList とLinkedList のadd()速さ比べ
環境 Windows 64bit jdk1.8.0_66
以下、検証コード
ArrayList::addとLinkedList::addの速度比較
結果
============================================== 1回目 ArrayListへのAdd速度 : 797418 1回目 LinkedListへのAdd速度 : 3009908 ============================================== ============================================== 2回目 ArrayListへのAdd速度 : 1820936 2回目 LinkedListへのAdd速度 : 1659835 ============================================== ============================================== 3回目 ArrayListへのAdd速度 : 1784859 3回目 LinkedListへのAdd速度 : 1707108 ============================================== ============================================== 4回目 ArrayListへのAdd速度 : 1812539 4回目 LinkedListへのAdd速度 : 1931342 ============================================== ============================================== 5回目 ArrayListへのAdd速度 : 1708974 5回目 LinkedListへのAdd速度 : 1655791 ============================================== ============================================== 6回目 ArrayListへのAdd速度 : 1534499 6回目 LinkedListへのAdd速度 : 1523615 ============================================== ============================================== 7回目 ArrayListへのAdd速度 : 1543830 7回目 LinkedListへのAdd速度 : 1472920 ============================================== ============================================== 8回目 ArrayListへのAdd速度 : 814212 8回目 LinkedListへのAdd速度 : 801149 ============================================== ============================================== 9回目 ArrayListへのAdd速度 : 738326 9回目 LinkedListへのAdd速度 : 1438088 ============================================== ============================================== 10回目 ArrayListへのAdd速度 : 869570 10回目 LinkedListへのAdd速度 : 755432 ============================================== ============================================== 11回目 ArrayListへのAdd速度 : 821676 11回目 LinkedListへのAdd速度 : 648135 ============================================== ============================================== 12回目 ArrayListへのAdd速度 : 682345 12回目 LinkedListへのAdd速度 : 578470 ============================================== ============================================== 13回目 ArrayListへのAdd速度 : 676125 13回目 LinkedListへのAdd速度 : 502895 ============================================== ============================================== 14回目 ArrayListへのAdd速度 : 657776 14回目 LinkedListへのAdd速度 : 495432 ==============================================
結論:余り変わらない。少しは違うけど、1万件で0.1秒も変わらないならスロークエリを直した方が良い。
8回目ぐらいからJITの影響か早くなっている。
特定のパスのgitconfigを使う
以下のようにする。自分の環境の場合は、~/dotfiles/.gitconfig に共通のgitconfigがある。共通で使いたいaliasなどが入っている
git config --global include.path ~/dotfiles/.gitconfig
.gitconfigを直接編集するようなブログしか引っかからなかったので、メモ。
git のコミットメッセージをvimで書くときに自動で折り返されないようにする
autocmd FileType gitcommit setlocal textwidth=0
をvimrcに加えればOK
上記を調べる上で必要だった知識メモ
現在のファイルタイプを確認するには
set filetype?
とコマンドを叩く
SourceTreeの外部DiffでMacVimを使う話
SourceTreeの外部diffでMacVimを使う時に、いくつか問題が発生したのでメモ
発生した問題
①SourceTreeから渡されるパスが"/"が2つ連続していてMacVimがそのパスを開けない ②diffツールにmvimdiffを使うと、内容が表示されない。
原因
①SourceTreeの不具合?わからん。。。。
②mvimdiffはプロセスをwaitしないモードで起動する様子
↓
mvimdiffをwaitしないので、制御が親プロセスに即戻る
↓
制御が戻ると渡されるファイルは消える(一時ファイルの様子)
↓
Vimで開くときにはもうファイルが消えている
解決策
SourceTreeから直接mvimdiffを呼ぶのではなく、シェルスクリプトを間に噛ませた。
#!/bin/sh LOCAL_PATH=`echo $1 | sed -e 's/\/\//\//g'` REMOTE_PATH=`echo $2 | sed -e 's/\/\//\//g'` /Applications/MacVim.app/Contents/MacOS/Vim -g -f -d $LOCAL_PATH -d $REMOTE_PATH
①に対しては、"//"を"/"にsed
②に対しては、Vimの引数を調べて、子プロオプション + diff モードで起動
するようにして対策した。
SourceTreeの方は以下のように設定する
Vimの引数調べるの面倒だった。。。
git checkout で error が発生する理由が解らなかった話
checkoutで、以下のエラーが出力された。
$ git checkout hoge
error: Your local changes to the following files would be overwritten by checkout:
foo/bar
Please, commit your changes or stash them before you can switch branches.
Aborting
status を見ても、何も変更が無い。
$ git status
On branch hoge
Your branch is up-to-date with 'origin/hoge'.
nothing to commit, working directory clean
謎…。意味分からん。。。と思っていたら --skip-worktreeをしていたことを忘れていた。
--skip-worktreeを解除して、無事checkout出来た。めでたしめでたし。
メモ
rubyで初めて遊んでみた
rubyで初めて遊んでみた。
- Javaのリスト = rubyの配列
- ハッシュの初期化で使う => 演算子はわかり辛い気が・・・
- ↑やはりコロン使う方式も途中で入ったみたい
- rubyはperlとLispの影響を受けてると聞いたけど、perlと似てるところあるなぁ・・・
- 整数と文字列は指定するのか。perlは指定なしだったのに・・・
- ++ でインクリメントされないのね・・・
- 動的型付け言語だけど、微妙に型を意識させようとしている?
- do end と {} の使い分けがわからん
触ってみた感触としては、perlよりもかなり使い易い感じ。
ただ、構文が言語の進化によって変わっている??google先生の結果が違うことがあった。
あと、to_i などの存在理由が謎。動的言語では?
あと、GoとJavascript、python3を遊びで触る予定。