並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 64件

新着順 人気順

Assemblyの検索結果1 - 40 件 / 64件

Assemblyに関するエントリは64件あります。 PCprogrammingコンピュータ などが関連タグです。 人気エントリには 『【特集】 電源の仕組みはこうだ!理解できれば良し悪しも分かる。これで目指せ電源マイスター』などがあります。
  • 【特集】 電源の仕組みはこうだ!理解できれば良し悪しも分かる。これで目指せ電源マイスター

      【特集】 電源の仕組みはこうだ!理解できれば良し悪しも分かる。これで目指せ電源マイスター
    • 【特集】 そろそろ年末年始。不要なパソコンを「自宅にいながら無料で」回収してくれる2つの方法を紹介

        【特集】 そろそろ年末年始。不要なパソコンを「自宅にいながら無料で」回収してくれる2つの方法を紹介
      • Mac やめて Linux PC を自作した - IT戦記

        みなさまお元気ですか 暑さも少し落ち着いてきて、ようやく外に出てもいいかなという気になってきました。季節の変わり目体調には気をつけていきたいですね。 実は、一ヶ月くらい前に Linux PC を自作して Mac から移行しました。そのときの考え、その後の感想を残しておきます。 また、学んだことや作業のログを細かく残しておきたいと思います。(どこかの誰かが不安に思ったときに同じ失敗や疑問を経験した人がいて安心してもらえたら嬉しい) Ubuntu のインストール画面 (ベストオープンソースと開発しよう!) 目次 Mac をやめるきっかけ、経緯 Ubuntu に移行して一ヶ月の感想 おまけ1: どのような PC になったか おまけ2: 事前に学んだこと おまけ3: PC の組み立て おまけ4: Ubuntu のセットアップ 加筆/修正 指摘のあった誤字を修正 NVEnc について誤った内容があっ

          Mac やめて Linux PC を自作した - IT戦記
        • 【特集】 不要になったHDDを手放す場合の処理方法まとめ。譲渡に際してのデータ完全消去から物理的な破壊まで

            【特集】 不要になったHDDを手放す場合の処理方法まとめ。譲渡に際してのデータ完全消去から物理的な破壊まで
          • x86-64機械語入門

            この記事はx86-64の機械語を書けるようになるためのガイドとなることを目指します。読者はアセンブリー言語について既にある程度知っていることを想定します。 情報源 x86-64の機械語のオフィシャルなガイドはIntelのSoftware Developer ManualまたはAMDのAMD64 Architecture Programmer's Manualです。 Intel SDM: Intel® 64 and IA-32 Architectures Software Developer Manuals AMD64 Architecture Programmer's Manual, Volumes 1-5 このほか、Cから呼び出される関数を定義したり、Cの関数を呼び出すためには、呼び出し規約の知識も必要です。使用される呼び出し規約はOSに依存し、Unix系では主にSystem V ABI

              x86-64機械語入門
            • 6502 アセンブラ プログラミング入門 / 新山 祐介

              概要: この記事では 8ビット CPU 6502 を 使ったアセンブラプログラミングを紹介する。 「アセンブラプログラミング」とは、プログラミング言語を使わず、 CPU のネイティブ命令列を直接書くプログラミング方法である。 6502 はいまから約50年前に開発され、 ファミコンや Apple II など多くのハードウェアで利用された。 しかし、その原理は今日のコンピュータとほとんど変わっていない。 ここでは 6502 のプログラミングを通して、コンピュータの本質を学ぶ。 6502 プログラミング入門 コンピュータの原理 レジスタとは 16進数とは 6502エミュレータを使った演習 メモリに値を格納する メモリの値を増加させながらループする アセンブラを使ったプログラミング 最初のプログラム (改良版) アセンブラを使ったジャンプ命令 差分アドレッシング 条件分岐 条件分岐 その2 16ビ

              • アセンブラをゼロから作って自作コンパイラをアセンブルするまで(日記)

                GNU Assembler互換(サブセット)のアセンブラをGo言語でフルスクラッチで作ってみました。 開発22日目で自作Goコンパイラ(をセルフホストしたときに出力される20万行のアセンブリ)をアセンブルすることに成功しました。 どうやって作ったかというと、小さいコードを GNU Assembler (以下 as) に食わせて出力されたバイナリを観察する、を繰り返して中のロジックを推定し再現しました。as の実装は見ていません。(一瞬見たけど巨大すぎて何もわからなかった) アセンブラ自作は、やってみるとコンパイラ自作よりだいぶ簡単でハマりポイントも少ないので、学習テーマとしてはおすすめです。2箇所ほど難所(命令エンコーディングのルールを理解するのと、ジャンプ命令の最適化)がありましたがそれ以外はさくさく楽しく作れました。 作ってみた結果、アセンブリ言語の理解が深まったのはもちろんのこと、E

                  アセンブラをゼロから作って自作コンパイラをアセンブルするまで(日記)
                • WebAssemblyで、JITコンパイラに迫る高速なJavaScriptエンジンを実装へ。Bytecode Allianceが技術解説。JavaScript以外の言語でも

                  WebAssemblyで、JITコンパイラに迫る高速なJavaScriptエンジンを実装へ。Bytecode Allianceが技術解説。JavaScript以外の言語でも 「Bytecode Alliance」は、WebAssemblyをWebブラウザだけでなく、デスクトップPCやサーバ、IoTデバイスなどあらゆる環境で、セキュアに実行することを目指している団体です。 Fastly、Mozilla、Arm、Google、マイクロソフト、インテルをはじめとする企業や団体が名前を連ねています。 参考:WebAssemblyをあらゆるプラットフォームでセキュアに実行できるようにする「Bytecode Alliance」発足。インテル、Mozilla、Red Hatなど 同団体は「WASI」と呼ばれる、どのOSやホストシステムでWebAssemblyモジュールが実行されたとしても、安全かつ透過的

                    WebAssemblyで、JITコンパイラに迫る高速なJavaScriptエンジンを実装へ。Bytecode Allianceが技術解説。JavaScript以外の言語でも
                  • 【特集】 なぜGeForce RTX 4060は微妙と言われるのか?いまだに人気の3060と性能やコスパを比べて本当の所を見極める

                      【特集】 なぜGeForce RTX 4060は微妙と言われるのか?いまだに人気の3060と性能やコスパを比べて本当の所を見極める
                    • ハードウェアの知識が無い人向けのアセンブリ言語の話(draft)

                      本記事は書きかけなので内容(タイトルすらも)は随時書き換わっていきます。ドラフトのうちは内容の正確性や文書全体としての整合性についても荒っぽい部分が多々あります。ご容赦ください。 はじめに 本記事はソフトウェア開発者がハードウェアに近い低レイヤといわれる領域に入門するとき、とくにアセンブリ言語に出会ったときにつまずきがちなことを紹介します。主な対象読者はJavaScriptやPythonなどのスクリプト言語などによるアプリ開発からソフトウェア開発に入った、それより下のレイヤになじみのない人です。 筆者は常々アセンブリ言語は技術的にものすごく難しいわけではないものの、学習につまずく人が非常に多いという印象を持っています。その主な原因の一つは、みなさんが普段慣れ親しんでいる人間に使いやすいように作られた高級プログラミング言語(以下高級言語)と、機械に解釈させやすいように作られているアセンブリ言

                        ハードウェアの知識が無い人向けのアセンブリ言語の話(draft)
                      • PlayStation Programming with MIPS Assembly and C

                        This course is a deep dive into the world of PlayStation programming! We'll explore the PS1 hardware, understand its sub-components, and learn how to code games using MIPS assembler & the C programming language. We'll also learn how to use a PS1 SDK library paired with a modern development toolchain to be more productive and push fast polygons out of our console. We are about to enter the 5th gene

                          PlayStation Programming with MIPS Assembly and C
                        • NAS向けHDD「WD Red」の記録方式をこっそり変更した件についてWDが釈明

                          大手HDDメーカー「Western Digital(WD)」が製造するNAS向け製品「WD Red」シリーズの記録方式がこっそり「SMR」に変更されていた件について、WDが見解を公式ブログにて公開しました。この見解について、ネット上では批判的な声があがっています。 On WD Red NAS Drives - Western Digital Corporate Blog https://blog.westerndigital.com/wd-red-nas-drives/ On WD Red NAS Drives | Hacker News https://news.ycombinator.com/item?id=22935563 HDDの記録方式のひとつであるSMRは、データの書き込み密度を高めることでHDDの大容量化を実現した技術。データの書き換えに弱点があり、一般的にはアーカイブなどの

                            NAS向けHDD「WD Red」の記録方式をこっそり変更した件についてWDが釈明
                          • HDD故障率のメーカー・モデル別統計データ2021年版、故障率が最も高かったのは?

                            クラウドストレージサービスを提供するBackblazeが、自社のデータセンターで使用している20万台以上ものHDDの故障率をまとめたデータの2021年版を公開しました。 Backblaze Drive Stats for 2021 https://www.backblaze.com/blog/backblaze-drive-stats-for-2021/ Backblazeは2021年だけで4万460台もの新たなHDDを追加し、2021年12月31日の時点で合計20万6928台ものHDDを管理していたとのこと。このうち、ブートドライブとして使用されていたものやテスト用に使用されたものを除いた、合計20万2759台のデータドライブに焦点を当てて、BackblazeはHDDの故障率を算出しました。 2021年1月1日~2021年12月31日のHDD故障率をモデル別で示したものがこれ。運用してい

                              HDD故障率のメーカー・モデル別統計データ2021年版、故障率が最も高かったのは?
                            • GeForce RTX 3080はどうやって2倍の性能を達成したのか

                                GeForce RTX 3080はどうやって2倍の性能を達成したのか
                              • Rustとアセンブリで実装された新たなRuby処理系 JITコンパイルをサポートして速く動く「monoruby」

                                Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。monochrome氏は、Ruby処理系「monoruby」について発表しました。 高速な実行が可能なRuby処理系「monoruby」 monochrome氏(以下、monochrome):monochromeといいます。今日は「機械語で書くRuby処理系のその後」ということで、前回の発表のその後を報告いたします。 自己紹介です。monochromeといいます。(スライドを示して)Twitterはこれです。最近、Twitterは治安が悪いので、Mastodonにアカウントを作りました。RustでRubyの処理系を作っています。プログラミング処理系、言語処理系が好きな人の集まりのSlackとか、最近はこの「Zulip」というアプリに移動して、こ

                                  Rustとアセンブリで実装された新たなRuby処理系 JITコンパイルをサポートして速く動く「monoruby」
                                • 機械語手書きから言語処理系をブートストラップする - Qiita

                                  この記事は言語実装のカレンダー | Advent Calendar 2021 - Qiita https://qiita.com/advent-calendar/2021/lang_dev の4日目の記事です。 はじめに 昔、アセンブリ言語のみから出発し、GC・継続・オブジェクトシステムなどを持つ比較的高級な言語までブートストラップするということをやりました。いつか再挑戦してみたいと思っていて、正月休みにやりましたら思いのほか動くものになりましたが、死蔵させたまま1年経ってしまいました。勿体無いのでこの機会に紹介して供養します。 前回作ったAmberという処理系はこちら - リポジトリ: https://github.com/nineties/amber 今回はアセンブリ言語じゃなく ELFファイルの手書き から出発してみたいと思います。ただのお遊びで、そんなことしても役には立ちません。が

                                    機械語手書きから言語処理系をブートストラップする - Qiita
                                  • 富岳版XbyakがIntelの深層学習ライブラリoneDNNにmergeされる - Cybozu Inside Out | サイボウズエンジニアのブログ

                                    初めに サイボウズ・ラボの光成です。 このたび、Intelの公式深層学習ライブラリoneDNNに、富士通が開発しているスーパーコンピュータ富岳向けのPull Requestがmergeされました。 その開発に関わることになった経緯を紹介します。 目次 概要 Xbyakとは 動機 Intelとの関わり 富士通との関わり 概要 富士通研究所はスーパーコンピュータ富岳で深層学習(ディープラーニング)を高速に処理するためのソフトウェアを開発してます。 そのためにIntelが開発している深層学習ライブラリoneDNNを富岳に移植して改良しています。 このたび、その成果の一部が本家のoneDNNに取り込まれました。 富岳はA64FXというArm v8-Aにベクトル演算機能SVEが追加されたCPUを持ちます。 oneDNNを富岳に移植するには、私が開発しているXbyakのA64FX用Xbyak_aarc

                                      富岳版XbyakがIntelの深層学習ライブラリoneDNNにmergeされる - Cybozu Inside Out | サイボウズエンジニアのブログ
                                    • 【特集】 驚異の1,000円で買える12コア「Xeon E5-2650 v4」と最新GeForceでゲームがどこまで動くのか?

                                        【特集】 驚異の1,000円で買える12コア「Xeon E5-2650 v4」と最新GeForceでゲームがどこまで動くのか?
                                      • 【笠原一輝のユビキタス情報局】 なぜM1 ProとM1 Maxにはバリエーションが存在するのか?MacBook Pro選びを考える

                                          【笠原一輝のユビキタス情報局】 なぜM1 ProとM1 Maxにはバリエーションが存在するのか?MacBook Pro選びを考える
                                        • CMR採用8TB HDDの新モデル「WD Blue WD80EAZZ」を買ってみた、コスパは最強? 実売は1万4千円前後、安価な8TB HDDの新モデル text by 瀬文茶

                                            CMR採用8TB HDDの新モデル「WD Blue WD80EAZZ」を買ってみた、コスパは最強? 実売は1万4千円前後、安価な8TB HDDの新モデル text by 瀬文茶
                                          • 【Hothotレビュー】 試して分かった!「Ryzen 7 5800X3D」が世界最高のゲーム向けプロセッサである理由

                                              【Hothotレビュー】 試して分かった!「Ryzen 7 5800X3D」が世界最高のゲーム向けプロセッサである理由
                                            • Turing Complete on Steam

                                              © Valve Corporation. All rights reserved. All trademarks are property of their respective owners in the US and other countries. Privacy Policy |  Legal |  Steam Subscriber Agreement |  Refunds

                                                Turing Complete on Steam
                                              • SNES Development Part 1: Getting Started

                                                I fell down the rabbit hole making a homebrew SNES game a few days ago, and since I couldn't find many good resources, I figured I'd write something of a tutorial. There are lots of resources out there for writing NES games, but way fewer for SNES games — I think there are a few reasons for this. First, the NES is much simpler than the SNES — this is true of both the NES hardware itself, but also

                                                • Seasonic電源でRTX 3000シリーズを使うとPCが落ちる不具合。主にRTX 3080以上のハイエンド帯で発生。Seasonic OEM電源も対象 | ニッチなPCゲーマーの環境構築Z

                                                  GeForce RTX 3080やRTX 3090など、主にGeForce RTX 3000シリーズのハイエンド帯において、Seasonicの電源(PSU)と組み合わせて使用すると、相性問題によりゲーム中やアイドル時などにPCの電源が唐突に落ちるという不具合が発生しています。 この不具合は、グラボから発生する高周波ノイズの影響により電源の保護回路を担うICが誤作動してPCが落ちるとされています。 ほとんどの電源はノイズをフィルタリングしたり、正しい信号と区別できるよう設計されていますが、Seasonicのエンジニアはこの点を考慮せずに設計してしまったのではないかと言われています。 GeForce RTX 3000シリーズで発生するノイズ [Source: jonnyGURU 1 / 2] なお、すべてのSeasonic電源でこの不具合が発生するわけではなく、発生しない場合もあります。また、

                                                    Seasonic電源でRTX 3000シリーズを使うとPCが落ちる不具合。主にRTX 3080以上のハイエンド帯で発生。Seasonic OEM電源も対象 | ニッチなPCゲーマーの環境構築Z
                                                  • GitHub - bytedance/sonic: A blazingly fast JSON serializing & deserializing library

                                                    goversion: 1.17.1 goos: darwin goarch: amd64 cpu: Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz BenchmarkEncoder_Generic_Sonic-16 32393 ns/op 402.40 MB/s 11965 B/op 4 allocs/op BenchmarkEncoder_Generic_Sonic_Fast-16 21668 ns/op 601.57 MB/s 10940 B/op 4 allocs/op BenchmarkEncoder_Generic_JsonIter-16 42168 ns/op 309.12 MB/s 14345 B/op 115 allocs/op BenchmarkEncoder_Generic_GoJson-16 65189 ns/op 199.96 MB

                                                      GitHub - bytedance/sonic: A blazingly fast JSON serializing & deserializing library
                                                    • アセンブリ言語(NASM)で FizzBuzz を書く

                                                      はじめに こんにちは!めもりーです。 最近 PHP で OS を作ったり,CPU エミュレータを作る機会が多く,何かとアセンブリに触れてきました。 FizzBuzz といえばプログラミング言語を学ぶにあたって,欠かせない一つのアルゴリズムです。 PHP で書くととても簡単に以下のように表現できます: <?php for ($i = 1; $i < 100; $i++) { if (($i % 15) === 0) { echo "FizzBuzz\n"; } else if (($i % 5) === 0) { echo "Buzz\n"; } else if (($i % 3) === 0) { echo "Fizz\n"; } else { echo "{$i}\n"; } } とても簡単ですね。しかし,アセンブリになるとどうなるでしょうか。相当に難易度が上がります。 アセンブリをやる

                                                        アセンブリ言語(NASM)で FizzBuzz を書く
                                                      • Shinjuku.rs#15 Rustでつくるx86アセンブラ

                                                        Making JIT assembler for x86-64 written in Rust.

                                                          Shinjuku.rs#15 Rustでつくるx86アセンブラ
                                                        • GitHub - pkivolowitz/asm_book: A book teaching assembly language programming on the ARM 64 bit ISA. Along the way, good programming practices and insights into code development are offered which apply directly to higher level languages.

                                                          You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                            GitHub - pkivolowitz/asm_book: A book teaching assembly language programming on the ARM 64 bit ISA. Along the way, good programming practices and insights into code development are offered which apply directly to higher level languages.
                                                          • JITコンパイルをサポートした新たなRuby処理系をRustとアセンブリで書いている話 - Qiita

                                                            CRuby(3.2.0-preview3)およびCRubyの新しいJITコンパイラ・モジュールであるYJITを有効にした場合と、monoruby(JITあり・なし)の単位時間当たりの実行回数をbenchmark-driver.gem を用いて比較しています。数字が大きい方が速いです。ベンチマークの種類によりますが、YJITと比較しても高速、特に浮動小数点演算を多数実行するso_mandelbrotやso_nbody、app_aobenchでは数倍高速となっています。インタプリタもCRuby(JITなし)と遜色ない速度になっています。 以下、設計と実装について紹介していきますが、その前に必要な基礎知識をおさらいしておきます。 基礎知識 JITコンパイラは実行時に対象言語のプログラムを機械語へコンパイルするモジュールですが、一般的な実装ではインタプリタと並存して動きます。プログラムは抽象構文木

                                                              JITコンパイルをサポートした新たなRuby処理系をRustとアセンブリで書いている話 - Qiita
                                                            • NVMe SSDの歴史を振り返ろう、2015年の「Samsung SSD 950 PRO」登場から大幅進化した最新SSD 2015年の登場から速度や容量は倍以上に text by 坂本はじめ

                                                                NVMe SSDの歴史を振り返ろう、2015年の「Samsung SSD 950 PRO」登場から大幅進化した最新SSD 2015年の登場から速度や容量は倍以上に text by 坂本はじめ
                                                              • Learn x86-64 assembly by writing a GUI from scratch

                                                                Published on 2023-05-31. Learn x86-64 assembly by writing a GUI from scratch Most people think assembly is only to be used to write toy programs for learning purposes, or to write a highly optimized version of a specific function inside a codebase written in a high-level language. Well, what if we wrote a whole program in assembly that opens a GUI window? It will be the hello world of the GUI worl

                                                                • WD80EAZZ(WD Blue 8TB)レビュー:安いのにHGST製でCMR方式のHDD | ちもろぐ

                                                                  CMRとSMRの違いをざっくりとまとめました。 CMRは従来型磁気記録方式と呼ばれ、SMRが登場する前から使われている古い技術です。小細工を一切せず、データをそのままディスク上に書き込み記録します。 SMRは瓦磁気記録方式と呼ばれ、HDDの低価格と大容量化に大いに貢献しています。一方で、瓦のようにデータを重ねて記録するため、いったん書き込んだデータをあとから書き換える動作に弱いです。 空き容量が少ない状態で容量の大きいファイルを上書きしたり、NASをリビルドするときに、瓦のように重ねたデータが仇となって異常なほど遅い性能に落ち込みます。 「CMR」は割となんでも使える「SMR」はほぼデータ倉庫向けCMRはSMRのデメリットがないので、SMRよりも対応できる用途が多いです。 どうせ安く大容量HDDを買うなら、SMR方式よりもCMR方式を選んだほうがコストパフォーマンスが良いのは言うまでも無い

                                                                    WD80EAZZ(WD Blue 8TB)レビュー:安いのにHGST製でCMR方式のHDD | ちもろぐ
                                                                  • Beating the compiler

                                                                    In modern times, everyone knows that writing assembly is a fool's errand: compilers are the result of literal engineer-centuries of work, and they know the processor much better than you do. And yet – one hears rumors. Written in ancient tomes, muttered in quiet watering holes, scrawled on the walls of bygone temples, hinted at by mysterious texts; the rumors paint a specific picture: Compilers ar

                                                                    • 利きx64アセンブラ

                                                                      初めに 今月初め (2024/11/9) のKernel/VM探検隊@北陸 Part 7で、satoru_takeuchiさんによる「利きプロセススケジューラ」という発表がありました。そこで二番煎じではありますが「利きx64アセンブラ」というネタを紹介します(ネタ自体は前から構想はあったけど形にはしてなかった - 言い訳)。 アセンブラ アセンブラとはアセンブリ言語で書かれたプログラムを機械語のバイト列に変換するツールで、ここではx86-64アーキテクチャ用アセンブラを対象とします。 アセンブラなんてCPUの仕様書にしたがってバイト列を生成するだけなのでアセンブラごとの違いなんてあるの?と思われるかもしれませんが、よく探してみると意外と個性が出ることがあります。 筆者は長年JITアセンブラXbyakというものを開発していたので、アセンブラが生成したバイト列を眺めることが多く、その違いにはま

                                                                        利きx64アセンブラ
                                                                      • GitHub - VitorVilela7/wide-snes: Super Mario World (SNES) Widescreen Project

                                                                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                          GitHub - VitorVilela7/wide-snes: Super Mario World (SNES) Widescreen Project
                                                                        • Rustによる言語内x86_64アセンブラのAPIデザインと実装

                                                                          概要 Rustでx86_64アセンブラを実装しました。JITコンパイラの実装での利用を想定しているため、アセンブリコードを文字列として入力に取るのではなく、 静的に型付けされたRustプログラム上にアセンブリコードを記述できるライブラリ として実装しています。例えばフィボナッチ数を計算するアセンブリコードを以下のように記述し、付属のJITエンジンを用いて実行できます: fn fib_object() -> io::Result<Object> { let mut w = Writer::new(); let fib = w.get_label("fib"); let l1 = w.issue_label(); let l2 = w.issue_label(); w.define(fib, true); w.cmpl(Edi, 1i8)?; w.jle(Short(l2))?; w.movl

                                                                            Rustによる言語内x86_64アセンブラのAPIデザインと実装
                                                                          • JITアセンブラXbyakを使ってみる(その1) - Qiita

                                                                            その1:Xbyakの概要←イマココ その2:数値計算屋のハマりどころ その3:AAarch64向けの環境構築 その4:Xbyakからの関数呼び出し その5:Xbyakにおけるデバッグ はじめに Xbyak(カイビャック)は、光成滋生さんによるJITアセンブラです。Intelによる深層学習ライブラリoneDNNのエンジン部分の実装に使われたり、AArch64版のXbyakであるXbyak_aarch64が富士通のリポジトリとして公開されたりと、ベンダーによる公式採用が増えています。なんかすごそうなので使ってみましょう、という記事です。 Xbyakの準備 Xbyakは、JITアセンブラです。C++ヘッダオンリーなので、インクルードするだけで使えます。git submoduleとして使うのが良いと思います。 まずは適当なリポジトリxbyak_testを作りましょう。

                                                                              JITアセンブラXbyakを使ってみる(その1) - Qiita
                                                                            • Rustのゼロコスト抽象化の効果をアセンブラで確認

                                                                              これは Rust その3 Advent Calendar 2019 の24日目のエントリです。 Rustのゼロコスト抽象化が期待どおりに働いていることを、コンパイラが出力した機械語(アセンブリコード)で確認します。 ゼロコスト抽象化とは ゼロコスト抽象化(zero-cost abstraction)とは、Rustが持つ抽象化のしくみが実行時の追加コストなしに動作することです。 ここでいう追加コストとは、メモリ使用量の増加や実行速度の低下などの、いわゆるオーバーヘッドを指します。 では抽象化とはなんでしょうか? プログラミングにおける抽象化とは、共通な部分を抽出し、その詳細をブラックボックス化することです。 これにより仕様変更に強く、再利用性の高いソフトウェアを開発できます。 Rustが提供する抽象化のしくみには、たとえば以下のようなものがあります。 ポリモーフィズム:いくつかの型に共通する

                                                                              • {n} times faster than C - part one

                                                                                Sometimes humans can spot optimization opportunities that a compiler can’t doesn’t. In this post, we start with a loop generated from C code by clang, and tweak it in various ways, measuring the speedup. 📢 This post was on the front page of HN. You can join in the discussion there. Disclaimer: I’m not an optimization expert, by any means, in fact my expertise is in high-level, purely-functional l

                                                                                • GitHub - tenderlove/asmrepl: A REPL for x86-64 assembly language

                                                                                  You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                                    GitHub - tenderlove/asmrepl: A REPL for x86-64 assembly language

                                                                                  新着記事