<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>bit on ビットログ</title><link>https://blog.bitmeister.jp/posts/bit/</link><description>Recent content in bit on ビットログ</description><generator>Hugo</generator><language>ja</language><atom:link href="https://blog.bitmeister.jp/posts/bit/feed.xml" rel="self" type="application/rss+xml"/><item><title>Common Alert Message Format</title><link>https://blog.bitmeister.jp/posts/bit/5395/</link><pubDate>Fri, 28 Jun 2024 02:47:22 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5395</guid><description>きょうは Common Alert Message Format (CAMF) について所感を書きます。準天頂衛星みちびきの災害・危機管理通報サービス(DCR)というのがありまして、その拡張(DCX)のメッセージフォーマットがCAMFです。</description></item><item><title>Azarashi supported DCX</title><link>https://blog.bitmeister.jp/posts/bit/5376/</link><pubDate>Thu, 27 Jun 2024 02:35:45 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5376</guid><description>ようやくできました。みちびきの災害・危機管理通報サービス(災危通報、DCR)にJ-AlertとL-Alertが追加されると聞いて、「2つ追加されるだけでしょ？かんたんかんたん」と思っていたら全然違いました。DCRのデコーダーをもう一度作るような手間がかかりました。</description></item><item><title>How to Use Momonga</title><link>https://blog.bitmeister.jp/posts/bit/5342/</link><pubDate>Tue, 07 May 2024 09:02:29 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5342</guid><description>&lt;a href="https://github.com/nbtk/momonga" target="_blank" rel="noreferrer"&gt;Momonga&lt;/a&gt; はBルートサービスを利用してスマートメーターと通信するPythonモジュールです。今日はその使い方を説明します。</description></item><item><title>Bルートのライブラリを作った</title><link>https://blog.bitmeister.jp/posts/bit/5329/</link><pubDate>Tue, 07 May 2024 07:25:51 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5329</guid><description>&lt;p&gt;Bルートのライブラリないかなーと思ってググったけど、なかったんです。なのでプロのプログラマがプロのクオリティで作りました。Bルートでスマートメーターと通信するライブラリ、モモンガです！&lt;/p&gt;
&lt;div class="github-card-wrapper"&gt;
&lt;a id="github-e2a2d320438cdf925c7f689590c545bb" target="_blank" href="https://github.com/nbtk/momonga" class="cursor-pointer"&gt;
&lt;div
class="w-full md:w-auto p-0 m-0 border border-neutral-200 dark:border-neutral-700 border rounded-md shadow-2xl"&gt;&lt;div class="w-full md:w-auto pt-3 p-5"&gt;
&lt;div class="flex items-center"&gt;
&lt;span class="text-2xl text-neutral-800 dark:text-neutral me-2"&gt;
&lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"&gt;&lt;path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;/span&gt;
&lt;div
id="github-e2a2d320438cdf925c7f689590c545bb-full_name"
class="m-0 font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"&gt;
nbtk/momonga
&lt;/div&gt;
&lt;/div&gt;
&lt;p id="github-e2a2d320438cdf925c7f689590c545bb-description" class="m-0 mt-2 text-md text-neutral-800 dark:text-neutral"&gt;
MomongaはBルートサービスを利用してスマートメーターと通信するPythonモジュールです
&lt;/p&gt;</description></item><item><title>Azarashi v0.7.4 リリース</title><link>https://blog.bitmeister.jp/posts/bit/5314/</link><pubDate>Fri, 23 Jun 2023 09:15:25 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5314</guid><description>&lt;p&gt;みちびき災危通報デコーダー azarashi の &lt;a href="https://github.com/nbtk/azarashi/releases/tag/v0.7.4" target="_blank" rel="noreferrer"&gt;最新バージョンをリリース&lt;/a&gt; しました。より寛容に信号を解釈するように変更を行いました。使っている方はアップデートしてみてください。まだ使ってない方はぜひGNSSモジュールと組み合わせてDIYしてみてください。&lt;/p&gt;
&lt;p&gt;P.S.
&lt;a href="https://github.com/nbtk/azarashi" target="_blank" rel="noreferrer"&gt;GitHub のレポジトリ&lt;/a&gt; に星をください。星に飢えています。とはいえ、こんなニッチなコードにも関わらず、既に10個も星をいただきました。ありがとうございます。星をくれたあなたのためにメンテナンスします。&lt;/p&gt;
&lt;div class="github-card-wrapper"&gt;
&lt;a id="github-7ea4fdcddf22b87a734e67a4bbf1c5ee" target="_blank" href="https://github.com/nbtk/azarashi" class="cursor-pointer"&gt;
&lt;div
class="w-full md:w-auto p-0 m-0 border border-neutral-200 dark:border-neutral-700 border rounded-md shadow-2xl"&gt;&lt;div class="w-full md:w-auto pt-3 p-5"&gt;
&lt;div class="flex items-center"&gt;
&lt;span class="text-2xl text-neutral-800 dark:text-neutral me-2"&gt;
&lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"&gt;&lt;path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;/span&gt;
&lt;div
id="github-7ea4fdcddf22b87a734e67a4bbf1c5ee-full_name"
class="m-0 font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"&gt;
nbtk/azarashi
&lt;/div&gt;
&lt;/div&gt;
&lt;p id="github-7ea4fdcddf22b87a734e67a4bbf1c5ee-description" class="m-0 mt-2 text-md text-neutral-800 dark:text-neutral"&gt;
QZSS DCR Decoder
&lt;/p&gt;</description></item><item><title>CPU Isolation</title><link>https://blog.bitmeister.jp/posts/bit/5288/</link><pubDate>Wed, 14 Jun 2023 10:31:22 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5288</guid><description>きょうは Linux カーネルがユーザーランドプロセスにスケジューリングしないCPUを確保しておく方法についてです。これによってコンテナやVMに割り当てるためのCPUが、ホストOSのユーザランドプロセスに使われてしまうことを回避できます。</description></item><item><title>Grandstream HT801 をつかって IPv6 で Asterisk に接続する</title><link>https://blog.bitmeister.jp/posts/bit/5270/</link><pubDate>Thu, 25 May 2023 08:35:35 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5270</guid><description>なぜ IPv6 かというと、RTPのNAT超えを考えなくてよくなるから。</description></item><item><title>RPi4, Ubuntu22.04, GPS, 1PPS, chrony</title><link>https://blog.bitmeister.jp/posts/bit/5238/</link><pubDate>Fri, 07 Apr 2023 07:30:19 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5238</guid><description>環境
u-blox M10S &amp;lt;UART, PPS-GPIO&amp;gt; Raspberry Pi 4B + Ubuntu 22.04 + chrony (NTP)</description></item><item><title>Azarashi v0.6.8 リリースノート</title><link>https://blog.bitmeister.jp/posts/bit/5225/</link><pubDate>Mon, 14 Nov 2022 08:27:35 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5225</guid><description>みちびき災危通報デコーダーをアップデートしました。</description></item><item><title>WOL Configuration on Linux</title><link>https://blog.bitmeister.jp/posts/bit/5217/</link><pubDate>Mon, 14 Nov 2022 08:12:13 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5217</guid><description>Wake On LANの設定のメモ。netplanが入っているUbuntu前提だけど、ほかのディストリビューションでも参考になるかもしれない。</description></item><item><title>ZIPコマンドでWordファイルが開けなくなった</title><link>https://blog.bitmeister.jp/posts/bit/5198/</link><pubDate>Tue, 18 Oct 2022 11:51:45 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5198</guid><description>zipコマンドでWordファイルとかExcelファイルとかと、他のいくつかのファイルを圧縮しようと思ったら、なぜかWordファイルがぶっ壊れて開けなくなって変な汗出てるみなさん、ようこそいらっしゃいました。まずは深呼吸して落ち着きましょう。</description></item><item><title>QZSS 災害・危機管理通報サービスのデコーダを作った</title><link>https://blog.bitmeister.jp/posts/bit/5109/</link><pubDate>Mon, 27 Jun 2022 06:41:08 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5109</guid><description>準天頂衛星みちびきには災害・危機管理通報サービスというものがあり、GNSSモジュールで気象や地震などの様々な災害に関する情報を受信することができます。きょうはその衛星からの信号をデコードするPythonスクリプトを書いたので紹介します。デコーダのなまえはAzarashiです。</description></item><item><title>緊急警報放送を復調する</title><link>https://blog.bitmeister.jp/posts/bit/5096/</link><pubDate>Wed, 07 Jul 2021 03:14:10 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=5096</guid><description>&lt;p&gt;&lt;a href="https://ja.wikipedia.org/wiki/%E7%B7%8A%E6%80%A5%E8%AD%A6%E5%A0%B1%E6%94%BE%E9%80%81%28EWS%29" target="_blank" rel="noreferrer"&gt;緊急警報放送&lt;/a&gt; は災害時にラジオなどの受信装置を自動起動するための信号です。このブログに辿り着いている時点で、そんなことは知ってるわいって感じですかね。でも一応書いておかないことには記事として成立しないので書きます。&lt;/p&gt;
&lt;p&gt;EWSは災害時にラジオやテレビ放送で聞くことがある、あの不穏なピロピロ音です。全く一般には普及していませんが、あれにはデジタル信号が含まれていて、それを検知すると自動起動する機能があるラジオなどがあります。どうやっているかというと、デジタル信号の0と1をそれぞれ640Hzと1024Hzの音に置き換えて表現します。これを変調といい、とくに0と1のデジタル信号を2つの周波数の変化に置き換える方式をBFSK(Binary Frequency Shift Keying, 二値周波数偏移変調)といいます。この切替を1秒間に64回行うので変調レートは64Bd(ボー)で、1回の変調で1ビットを送りますから転送レートは64bpsです。&lt;/p&gt;
&lt;p&gt;さて、アルゴリズムについてですが、音声周波数の変化をどうやってを0と1に戻すのかというと、たとえば640Hzの波は言い換えれば1/640秒に1周期の波なので、振幅軸上の特定のポイントを通過する時間間隔を測定して1/640秒と一致すれば640Hzの波だと判断できるわけです。ちなみに64Bdなので1変調の1/64秒あたりの640Hzなら10周期、1024Hzなら16周期です(取りこぼしもあるので、何回この周期を検知したら信号とみなすかは調整が必要です)。さいごに640Hzを検出したら0、1024Hzを検出したら1に置き換えればデジタル信号になります。&lt;/p&gt;
&lt;p&gt;ソースはこちら。&lt;/p&gt;
&lt;div class="github-card-wrapper"&gt;
&lt;a id="github-1e8c8cc36390792c07de9c2d23f958a8" target="_blank" href="https://github.com/nbtk/EWSDemodulator" class="cursor-pointer"&gt;
&lt;div
class="w-full md:w-auto p-0 m-0 border border-neutral-200 dark:border-neutral-700 border rounded-md shadow-2xl"&gt;&lt;div class="w-full md:w-auto pt-3 p-5"&gt;
&lt;div class="flex items-center"&gt;
&lt;span class="text-2xl text-neutral-800 dark:text-neutral me-2"&gt;
&lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"&gt;&lt;path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;/span&gt;
&lt;div
id="github-1e8c8cc36390792c07de9c2d23f958a8-full_name"
class="m-0 font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"&gt;
nbtk/EWSDemodulator
&lt;/div&gt;
&lt;/div&gt;
&lt;p id="github-1e8c8cc36390792c07de9c2d23f958a8-description" class="m-0 mt-2 text-md text-neutral-800 dark:text-neutral"&gt;
緊急警報放送復調器
&lt;/p&gt;</description></item><item><title>超高速Tracerouteを実装した</title><link>https://blog.bitmeister.jp/posts/bit/4867/</link><pubDate>Tue, 27 Aug 2019 08:07:42 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=4867</guid><description>牧歌的なテンポで結果を表示するTracerouteをのどかに見つめてる時代は今終わった</description></item><item><title>Tracerouteについて知っておくべきこと</title><link>https://blog.bitmeister.jp/posts/bit/4833/</link><pubDate>Mon, 26 Aug 2019 08:33:50 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=4833</guid><description>Tracerouteの仕組みについて解説してるページは数あれど、障害箇所特定のノウハウはあまり見かけないので、今回は「Tracerouteは有用だけど、これを知らないと結果が読めないぞ」という話を。</description></item><item><title>Python でシングルトンパターンを実装する</title><link>https://blog.bitmeister.jp/posts/bit/4806/</link><pubDate>Mon, 03 Jun 2019 08:19:19 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=4806</guid><description>&lt;p&gt;生成されるクラスインスタンスを常に一つにするシングルトンパターンを Python で実装します。&lt;/p&gt;
&lt;p&gt;Python は Java みたいに &amp;ldquo;private static&amp;rdquo; みたいな修飾ができないし、どこで初期化すればいいのかもちょっと考える必要があります。&lt;/p&gt;</description></item><item><title>Pythonの辞書に dot notation でアクセスする</title><link>https://blog.bitmeister.jp/posts/bit/4658/</link><pubDate>Thu, 29 Nov 2018 07:34:53 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=4658</guid><description>Javascript のハッシュマップはドット・ノーテーション ( dot notation )でアイテムにアクセスできますよね。でも Python の辞書ではそれができません。できたら便利だなーと考えていたらひらめいたので、 dict クラスを継承した dict2 クラスを作りました。</description></item><item><title>スレッド間でカウンタを共有する（再び）</title><link>https://blog.bitmeister.jp/posts/bit/4561/</link><pubDate>Mon, 09 Apr 2018 12:00:14 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=4561</guid><description>これまでも話してきたとおり、スレッド間でオブジェクトを共有することはハイコストなので、可能な限りオブジェクトを共有しない設計にすることが性能においても品質においても重要です。しかし、どうしてもオブジェクトを共有したい場合は、昨今の処理系にはそれを保証する機能が用意されているのでそれを使って安全を担保します。</description></item><item><title>誤った並列化による性能劣化（その２）</title><link>https://blog.bitmeister.jp/posts/bit/4548/</link><pubDate>Thu, 05 Apr 2018 05:16:09 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=4548</guid><description>前回の記事に引き続いて、マルチスレッドプログラムの性能についてです。前回は「コンテキストスイッチングや排他制御のオーバヘッドに見合う処理でなければ並列化は逆効果」ということがわかりました。今回はmutexのロック獲得と開放について簡単な実験します。</description></item><item><title>誤った並列化による性能劣化（その１）</title><link>https://blog.bitmeister.jp/posts/bit/4525/</link><pubDate>Wed, 04 Apr 2018 09:33:30 +0000</pubDate><guid isPermaLink="false">https://blog.bitmeister.jp/?p=4525</guid><description>前回の記事で「複数のスレッドが共有する変数をインクリメントするときには排他制御が必要」という話をしました。その結果、正しい値を得ることには成功したものの、性能が著しく落ちるという知見を得ました。今回は性能が出ないマルチスレッドプログラムに対して割り当てるCPU数をあえて制限してみます。</description></item></channel></rss>