普段の圧縮、解凍にはどんなソフトを使っていますでしょうか。
私はちょっとマイナーなlzipというものを使っています。
LZMA形式のソフトで割と大きいファイルを圧縮するときに効率がいいです。
同じようなソフトでxzと言うものがあります。ちょっと気になったので私の非力なマシンで比較してみました。なお比較もお手軽にたった一回だけの試行です。手元にあったgccのソースファイルでやってみました。
-rw-rw-r-- 1 jk jk 67881881 8月 14 17:44 gcc-7.2.0.tar.lz
$ time lzip gcc-7.2.0.tar
real 6m18.007s
user 6m7.908s
sys 0m1.016s
$ time lzip -d gcc-7.2.0.tar.lz
real 0m17.354s
user 0m10.388s
sys 0m1.144s
-rw-rw-r-- 1 jk jk 66360108 8月 14 17:44 gcc-7.2.0.tar.xz
$ time xz gcc-7.2.0.tar
real 7m42.878s
user 7m40.676s
sys 0m1.204s
$ time xz -d gcc-7.2.0.tar.xz
real 0m11.897s
user 0m8.012s
sys 0m0.872s
ファイルサイズは約2.2%xzの方が小さくなりました。これはほぼ互角と言ってもいいかもしれません。
圧縮は22% lzipの方が速く出来ました。
解凍は34%xzの方が速く出来ました。
圧縮と解凍で真逆の結果となりましたが、一般的には解凍するほうが多いのかもしれません。
xzの方がメジャーな気がしますので、ややlzipが不利な結果となりました。ただしxzは2009年で開発が止まっている様です。lzipは2017年現在も開発中です。
昔に比べるとそこまで圧縮、解凍のニーズは減ったのかもしれませんが、こういう比較は面白いです。
2017年11月2日木曜日
2017年9月22日金曜日
ubuntu版のgoogle chromeの挙動が変わった?
最近ubuntu版のgoogle chromeの挙動が変わった気がしています。
以前はどうしても見られなかったウェザーニュースのFlash版のページが見られるようになったり、GYAOのページがLinux版というだけで弾かれていたのがUser Agent偽装しなくても見られるようになったり。
Flashはご存知の方も多いですが、2020年にAdobe Systemsがフラッシュのサポートを終了すると発表して消えゆく運命なのですが、今になって動作するようになったというのも面白いです。
以前はどうしても見られなかったウェザーニュースのFlash版のページが見られるようになったり、GYAOのページがLinux版というだけで弾かれていたのがUser Agent偽装しなくても見られるようになったり。
Flashはご存知の方も多いですが、2020年にAdobe Systemsがフラッシュのサポートを終了すると発表して消えゆく運命なのですが、今になって動作するようになったというのも面白いです。
2017年8月30日水曜日
Ubuntu 16.04.3 その後の感想
前回の投稿でアップデートしてからしばらく経った感想です。
メモリ管理が改善したように感じる。
以前はChromeのタブを多く開くとハードディスクがガジガジと音をだしてかなりパフォーマンスが落ちたのですが、それが改善しているぽい気がします。
ネット接続の改善
以前はYouTubeの動画再生ですぐ最低画質に落ちていたのですが、以前よりはスムーズに再生されるようになった気がします。しかしこれはUbuntuではなくYouTube側の改善の可能性もありますので、なんとも言えません。
ちょっと挙動がおかしいケースもある
詳しくは書けませんが、挙動がおかしいと感じる事があります。やはり古いPCですのでいつカーネルに切り捨てられるのかわからない部分もあります。
メモリ管理が改善したように感じる。
以前はChromeのタブを多く開くとハードディスクがガジガジと音をだしてかなりパフォーマンスが落ちたのですが、それが改善しているぽい気がします。
ネット接続の改善
以前はYouTubeの動画再生ですぐ最低画質に落ちていたのですが、以前よりはスムーズに再生されるようになった気がします。しかしこれはUbuntuではなくYouTube側の改善の可能性もありますので、なんとも言えません。
ちょっと挙動がおかしいケースもある
詳しくは書けませんが、挙動がおかしいと感じる事があります。やはり古いPCですのでいつカーネルに切り捨てられるのかわからない部分もあります。
2017年8月7日月曜日
Ubuntu 16.04.03
Ubuntu 16.04のポイントリリース16.04.3を適用してみました。
単純にいつものようにコマンドラインでアップデートをかけるだけでいいのですが、「Ubuntu 16.04.2」以降、ローリングLTS Enablement Stackモデルが採用されているとの事でどうせならカーネルもバージョンアップしたいと思いましたが、そのままではベースバージョンのまま何も変わりません。
調べた所、コマンドラインで以下のようにすればいいそうです。
sudo apt-get install --install-recommends linux-generic-hwe-16.04 xserver-xorg-hwe-16.04
カーネルも無事更新されました。
私のマシンの場合かなり古いマシンなのでカーネルアップデートの必要性はあまりないのですが、気分的に新しい環境で使いたいなーと思って更新かけてみました。
単純にいつものようにコマンドラインでアップデートをかけるだけでいいのですが、「Ubuntu 16.04.2」以降、ローリングLTS Enablement Stackモデルが採用されているとの事でどうせならカーネルもバージョンアップしたいと思いましたが、そのままではベースバージョンのまま何も変わりません。
調べた所、コマンドラインで以下のようにすればいいそうです。
sudo apt-get install --install-recommends linux-generic-hwe-16.04 xserver-xorg-hwe-16.04
カーネルも無事更新されました。
私のマシンの場合かなり古いマシンなのでカーネルアップデートの必要性はあまりないのですが、気分的に新しい環境で使いたいなーと思って更新かけてみました。
2017年8月3日木曜日
clang 6.0.0をソースビルドしてインストール
久々に作業を行ったので記録として残しておきます。
試用環境はUbuntu16.04.2LTSです。
デフォルトのClangは3.8でした。
まずソースをリポジトリより取得します。
$ mkdir clang
$ cd clang
$ sudo apt-get build-dep -y llvm clang
$ svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm$ cd llvm/tools
$ svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
$ cd clang/tools
$
$ cd ../../../projects
$ svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
$ cd ../..
ビルド用のディレクトリを作成してcmakeでMakefile作成し、ビルドします
$ mkdir llvm.build
$ cd llvm.build
$ cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ../llvm
$ make
ビルドが私のマシンが非力なのか大体8時間15分ほど時間がかかりました。寝る前に流して朝起きるとまだビルドが75%程で仕方ないのでそのままPCをつけたまま出かけました。
さて動作確認です。
/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.23' not found (required by <new software>)
あれ?どうやらライブラリがないと言われている様です。
現在のライブラリを以下のコマンドで確認すると確かに該当バージョンが含まれていません。
$ strings /usr/lib/x86_64-linux-gnu/libstdc;;.so.6 | grep GLIBCXX
調べるとそのライブラリはgccをビルドすると含まれているそうです。
よかったこの間gcc7.1.0をビルドしたばかりで既にビルドした物が手元にあります。
$ cd gcc/build
$ find ./ -name "libstdc++*"
"./x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.23"
このファイルのようです。
現在の環境のものをリネームしてこのファイルに置き換える作業をします。
$ sudo cp ./x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.23 /usr/lib/x86_64-linux-gnu/
$ sudo cp libstdc++.so.6.0.23
$ sudo mv libstdc++.so.6 libstdc++.so.6.bak
$ sudo ln -s libstdc++.so.6.0.23 libstdc++.so.
$ ls -lsta libstdc++*
権限を他のものと揃えて終わります。
$ sudo chmod 644 libstdc++.so.6.0.23
これで一応clangが動作するようになりました。
試用環境はUbuntu16.04.2LTSです。
デフォルトのClangは3.8でした。
まずソースをリポジトリより取得します。
$ mkdir clang
$ cd clang
$ sudo apt-get build-dep -y llvm clang
$ svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm$ cd llvm/tools
$ svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
$ cd clang/tools
$
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
$ cd ../../../projects
$ svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
$ cd ../..
ビルド用のディレクトリを作成してcmakeでMakefile作成し、ビルドします
$ mkdir llvm.build
$ cd llvm.build
$ cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ../llvm
$ make
ビルドが私のマシンが非力なのか大体8時間15分ほど時間がかかりました。寝る前に流して朝起きるとまだビルドが75%程で仕方ないのでそのままPCをつけたまま出かけました。
さて動作確認です。
/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.23' not found (required by <new software>)
あれ?どうやらライブラリがないと言われている様です。
現在のライブラリを以下のコマンドで確認すると確かに該当バージョンが含まれていません。
$ strings /usr/lib/x86_64-linux-gnu/libstdc;;.so.6 | grep GLIBCXX
調べるとそのライブラリはgccをビルドすると含まれているそうです。
よかったこの間gcc7.1.0をビルドしたばかりで既にビルドした物が手元にあります。
$ cd gcc/build
$ find ./ -name "libstdc++*"
"./x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.23"
このファイルのようです。
現在の環境のものをリネームしてこのファイルに置き換える作業をします。
$ sudo cp ./x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.23 /usr/lib/x86_64-linux-gnu/
$ sudo cp libstdc++.so.6.0.23
$ sudo mv libstdc++.so.6 libstdc++.so.6.bak
$ sudo ln -s libstdc++.so.6.0.23 libstdc++.so.
$ ls -lsta libstdc++*
権限を他のものと揃えて終わります。
$ sudo chmod 644 libstdc++.so.6.0.23
これで一応clangが動作するようになりました。
2017年7月14日金曜日
雑記
・WindowsとUbuntuの更新について
今、UbuntuをいれているマシンとWindows10をいれているマシンの2台を使ってますがWindowsの更新は面倒ですね。何回も再起動を促されたりしてぐったりです。Ubuntuも再起動が必要なことはあるのですが、Windowsほどしつこくないです。
・Bloggerのアカウント切り替えについて
Gooogleのアカウントを複数使っているのですがBloggerは複数アカウントに対応してないとかで、他のアカウントをサインアウトしないと使えない問題がありました。苦肉の策としてChromeとFireFoxで別アカウントでサインインすれば使えるようになりました。
2017年6月30日金曜日
yutubeでタイトルが切り替わらずに新しい動画が再生される
うーん どうしてなんだろう?
ひとつの動画が再生されて次の動画に移っても、タイトルはそのままで動画だけ次の動画になるので、何をいま再生されているのかよくわからない状況になります。
環境はUbuntu16.04.2上のGoogole Chromeです。
似たような現象が起こっている方いませんかね?
ひとつの動画が再生されて次の動画に移っても、タイトルはそのままで動画だけ次の動画になるので、何をいま再生されているのかよくわからない状況になります。
環境はUbuntu16.04.2上のGoogole Chromeです。
似たような現象が起こっている方いませんかね?
2014年4月20日日曜日
Ubuntu14.04LTS
すっかりご無沙汰です。
日曜になってよくやく時間が出来たのでUbuntu14.04LTSに手元の環境をアップデートしました。正確には土曜の夜中に初めて起きだしてはインストールの質問に答えるという半分寝ながらインストールしました。
linuxカーネルは3.13、gccは4.8.2、clangは3.4になったようです。前回Ubuntu13.10のclang3.3でコンパイルエラーになったプログラムをコンパイルしたところ、警告がひとつ出ただけでコンパイルできました。
google mapsも正式にリリースされてインタフェースが少し改善されているようですが、そちらはまだ細かく見る時間がないです。というかインタフェースなんて本来、意識しなくてすむならそれに越したことはないのです。でもなくなったり、変更されて初めていろいろ意識するものですね。
簡単ですが、今回はこの辺で。
日曜になってよくやく時間が出来たのでUbuntu14.04LTSに手元の環境をアップデートしました。正確には土曜の夜中に初めて起きだしてはインストールの質問に答えるという半分寝ながらインストールしました。
linuxカーネルは3.13、gccは4.8.2、clangは3.4になったようです。前回Ubuntu13.10のclang3.3でコンパイルエラーになったプログラムをコンパイルしたところ、警告がひとつ出ただけでコンパイルできました。
google mapsも正式にリリースされてインタフェースが少し改善されているようですが、そちらはまだ細かく見る時間がないです。というかインタフェースなんて本来、意識しなくてすむならそれに越したことはないのです。でもなくなったり、変更されて初めていろいろ意識するものですね。
簡単ですが、今回はこの辺で。
2013年11月24日日曜日
Ubuntu 13.10とclang3.3
お久しぶりです。
個人的にいろいろ変化があって、記事を投稿出来る時間がありませんでした。
さて、Ubuntu13.10が10月にリリースされて一応アップデートだけはしていたんですが、
なかなか触る時間もなくて放置していました。
Ubuntu13.10ではgccも4.8.1になって以前書いた記事のように自分で関連ライブラリのビルド後に本体のビルドをして半日が潰れるみたいなことしなくても良くなりました。
clangはデフォルトでは3.2.7が用意されているようでこれも
sudo apt-get install clang
というコマンド一発でインストールOKです。
ところで、Ubuntu13.10にはclang-3.3というパッケージも用意されているようです。
試しにインストールしてみました。
$sudo apt-get remove clang
$sudo apt-get install clang-3.3
自分の作ったとあるソースをコンパイルしてみます。
$ clang++ test.cc -std=c++11 -O3 -o test_cl
In file included from test.cc:1:
In file included from /usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/algorithm:60:
/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/utility:68:10: fatal error:
'bits/c++config.h' file not found
#include <bits/c++config.h>
^
1 error generated.
あれ、clang3.2.7ではコンパイル出来たプログラムがエラーになる!
この現象をググった所、
という所で同じような現象が話されています。
2013年9月頃の投稿ですね。
斜め読みするとどうやら最新のclang3.3では修正された様ですが、Ubuntuが取り込んだものではまだ残っている様ですね。
せっかくパッケージになって楽になったのにこういうのが残っているので自分でコンパイルしなくちゃいけないようです。
登録:
投稿 (Atom)