タグ

2021年10月16日のブックマーク (2件)

  • 128ビット符号付き整数の最大値は素数 - Rustで任意精度整数演算

    概要 2^n-1 型の数はメルセンヌ数と呼ばれ、更に素数である場合にメルセンヌ素数といいます。記事では、メルセンヌ数に対する高速な素数判定法であるリュカ・レーマーテストを、Rustの任意精度演算用クレート rug を利用して実装します。 実行環境 CPU: Intel Core i7 1.8GHz メモリ: 16GB OS(ホスト): Windows 10 Home 21H1 WSL2: Ubuntu 20.04.3 rustc: Ver. 1.55.0 cargo: Ver. 1.55.0 符号付き整数型の範囲について Rustには組み込みの整数型として 8,\,16,\,32,\,64,\,128 ビット整数[1]がそれぞれ符号付き・符号なしで備わっています[2]。そのうち符号付き整数は、他の多くの言語と同様、2の補数によって負の数が表現されます。したがって、ビット数 n = 8,

    128ビット符号付き整数の最大値は素数 - Rustで任意精度整数演算
  • Rustで最速のサーバソフトウェアを目指す!

    最速を目指さないなら、なんのためのRustなのか! メモリの安全性?信頼できる並列性?そんなものは飾り、最速あっての、Rust愛です。 サーバソフトウェアの実装を容易にする非同期処理(async/await)機能も充実してきて、「RustでHTTPサーバを書いてみよう」というような情報をたくさん見かけます。しかし、最速という観点が欠け、Rust愛が足りていないようです。 Webフレームワークなど、数多くのOSSソフトウェアに利用されている、最も人気の非同期ランタイムのTokioを試してみました。 Tokioを利用したサーバアーキテクチャTokioの公式ガイドなどを見て、同じようなコードで、HTTPサーバのような、TCPプロトコルで多数のクライアントからのリクエストを処理するようなサーバソフトウェアを実装すると、下記の図ようなアーキテクチャでリクエストが処理されます。 Tokioを使った標準

    Rustで最速のサーバソフトウェアを目指す!
    gom68
    gom68 2021/10/16