Help us understand the problem. What is going on with this article?
結論 プロセスにメッセージが詰まると破綻するので、 性能検証をする際は message_queue_len を使ってちゃんと確認しましょう。 説明 erlang:process_info/2 は指定したプロセスの情報を取得する仕組みです。その中に message_queue_len という項目があります。 これは何かというと、プロセスのキューに 貯まっている メッセージ数を表示します。 プロセスのキュー? そもそも Erlang のプロセスに情報を渡す場合はメッセージパッシングが基本です。そのメッセージは受け取った側のプロセスのキューに入ります。 このキューが message_queue です。 message_queue_len はその 現時点でのキューに詰まっているメッセージの長さ です。receive でその送られてきたメッセージにマッチすれば、そのキューから取り出されます。 詰まる
lexmagさん(Elixirコミッター)の The Elixir Style Guide を翻訳しました。 Elixir Style Guide プログラマの仕事はコードを書くことよりも、むしろ問題解決の方法について別のプログラマに伝えることです。これが技術者としての成熟の最終段階です。 — What a Programmer Does, 1967 Table of Contents コードレイアウト シンタックス 命名 コメント モジュール 正規表現 例外 コードレイアウト インデントはスペース2つ。ハードタブは使わないこと。[link] 一行につき式は一つ。命令や式を区切るのに;を使ってはいけない。[link] - バイナリオペレータの前後、カンマ、コロン、セミコロンの後にはスペースを入れてください。 []の{}の間にはスペースを入れないでください。 Elixirの処理系にとって空白
静的コード解析ツールの状況 Dialyzer 標準で入っているツール Erlang用の静的型解析ツールなので、コンパイルしないと使えない Credo オープンソースのツール プロジェクトに依存を追加して使うようです Credo's Elixir Style Guideに準拠 The Elixir Style Guideに準拠するstrictモード 1,411 GitHub Stars Dogma オープンソースのツール プロジェクトに依存を追加して使うようです The Elixir Style Guideに準拠 色々調整したい場合はCredoを推奨しているようです 311 GitHub Stars codebeat SaaS Elixir対応予定っぽいです GitHub、Bitbucket連携機能があり、Publicプロジェクトであれば無料 テスティングツールの状況 ExUnit 標準で入
Phoenix を使うなら CodeReloader がやってくれるが、 一般の Elixir Application を書くときにどうするか、 watchdog の watchmedo を使う方針で書く。 アプリケーション名は :foo だと仮定する。 準備 distillery Elixir で release するためのライブラリのデファクト。 mix.exs の deps に入れて mix deps.get して持ってくる。 mix release.init で rel/config.exs に初期設定を作成する。 mix release で foo:dev な release が rel/foo/ に作成される。 watchdog pip install watchdog でインストールする。 実行 アプリケーションはデーモンで起動した後に attach する。
URLYou can post either your article on Qiita or your blog post. About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)
この記事は、「ElixirからRustの関数をつかう → はやい」の続編だ。今回は、前回の記事で最速だった Rust によるマルチスレッドプログラムを、少ない労力で SIMD 化して、さらなる高速化を図る。 実はコード自体は少し前に書いてあったのだが、なかなか本文を書き進める時間がとれず、今回は、駆け足で説明することになってしまった。説明不足な点があると思うので、疑問とか、試してみたけどうまくいかないとかあれば、コメント欄で質問してほしい。 前回やったこと 前回 の記事では、Elixir から Rust の関数を呼ぶことで、円周率の近似値を求める計算を高速化した。計算方法は「数値積分法の長方形近似」という、とても素朴な方法だった。 これを選んだのは次のような理由だった。 実装が非常に簡単 計算が適度に重い マルチコア CPU を活かしたプログラムを書きやすい 以下の段取りで、計算にかかった
Phoenix Framework は Rails 風なリッチなフレームワークである割にデフォルトでもそこそこ速いことが知られています.例えば次のようなベンチマークがあります. しかし,それよりも私がおもしろいと思った特長に,リアルタイム通信機能がフレームワークに統合されている点があります.しかしまだ日本ではあまり知られておりません.そこで Phoenix Framework の最新版である v0.17.0 における wiki にある Channel の記事を日本語へと翻訳しました. 翻訳や内容におかしなところがあれば指摘お待ちしております チャンネルはフェニックスの本当に刺激的で強力な部分で,アプリケーションへ簡単にソフトリアルタイムな特徴を追加することができるようになります.チャンネルは簡単なアイディア - メッセージを送る,受けとる に基づいています.送信者はトピックスに関するメッセ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く