この間MSIのGT72Sを購入したけど、ただ二三日が経ったのにそれである問題に気づいた。

パソコン自体にはWindows 10があったけど、開発のため、僕はKubuntuをインストールした。僕はこの前にずっとCinnamonを利用したから、KDEなんてこれは初めてだった。
いつもKDEのセッテイングがめんどくさいという印象があるけど、今回のKubuntu 15.10はなんと驚くほど使いやすくなってきた。バグはちょっとあるけど、どれも回避しやすい。以前FedoraでCinnamonを使った時に自分で配置しなければいけないことって、KDEであればどれも直接にGUIを通じて設定できる(マウスを使うとき自動的にタッチパッドを無効化するとか)。

それでKubuntuを何日間嬉しく使ったあと、珍しくWindowsに入った時に、パソコンから高周波ノイズが出てしまった。スピーカーやCPUファンのノイズだと思ったけど、スピーカーを無効化してファンの電源ワイヤーを外しても、そのノイズはそのままで消えてなかった。それで耳をパソコンに近づいてよーく聞けば、あのノイズはスピーカーからでもファンからでもなく、CPUの方からのものだと確認した。

MSIのサポートに連絡したら、どうやら他の客からも似たような報告が出た。一時的な解決として、BIOSのAdvanceタブを開けてAlt F2 Ctrl Shift 4つのバタンを同時に押して、それから隠しオプションの「CPU C State」を無効化すればいいんだ。でもこれでおそらくWindowsではCPUの省エネ機能が使えなくなるんでしょう。それにこれってやっぱりちょっと妙な感じがするね、だって僕Linuxの方は「intel_idle.c_state=1」というカーネルパラメータを使ってるし(BIOS設定を無視し、C-Stateを強制的に有効化)。こう見ればLinuxはやっぱり電源マネジメントについてWindowsより器用かもしれない。

ちょっとグーグルしたら、どうやらこの問題はマザーボードのコイルに起こされたようだ。時々あるんだけど、それもそれで珍しい問題らしい。地元のMSIサポートセンターに行ったら、予想通り国内の工場に返品しなければいけない。それに僕のパソコンはアメリカの通販から買ったから、交代を要求したら自腹でアメリカに送るしかない、でもそれでおよそ20000円の配送料をかかる。これはまつしかねーな (TдT)

php-bencode is a PHP Bencode extension which supports encoding, decoding and editing Bencode strings or files. The previous version of php-bencode, which supports PHP 5, needs PHP-CPP to run while the new one now requires no other external libraries.

The location of the source code remains the same, on both GitHub and my personal TsundereGit:
https://github.com/Frederick888/php-bencode
https://git.tsundere.moe/Frederick888/php-bencode

Written in C/C++, php-bencode gives an unbelievable performance boost for manipulations of Bencode. I’ve run a benchmark through different implements by decoding a Bencode file with 1M sub-nodes in my box (8 cores, 1G memory). The sample file can be downloaded here: Bencode Sample.

Obviously, the time needed to decode the same file is shortened dramatically by using php-bencode. The memory usage is a little higher than the pure PHP library with PHP 7 but the object array can give you real data safety rather than a plain array. (For example, if the original Bencode file contains an empty dictionary or list, data loss may be caused after decoding and re-encoding.) What’s more, because the memory usage gap between php-bencode and other pure PHP libraries goes up with the number of nodes, as the Bencode files we usually need to handle contain only less than 1,000 nodes, the gap can be just ignored.

Still, there’s much work to do. The previous version supported to get/set a node by path and search through the whole tree but they have not been implemented in the new one yet. Additionally, the new php-bencode supports only PHP 7 by now and I’m considering to support PHP 5.6 as well.
続きを読む