![Arduino、「PLC IDE 1.0」をリリース ~制御機器プログラミングのための開発環境/「Arduino」スケッチと組み合わせ可能](https://cdn-ak-scissors.b.st-hatena.com/image/square/bf929a7c8273f41b7c8fba023ab74f32c9025586/height=288;version=1;width=512/https%3A%2F%2Fforest.watch.impress.co.jp%2Fimg%2Fwf%2Flist%2F1461%2F820%2Fimage1.jpg)
C/C++でプログラムを書いているときに遭遇する厄介なバグの一つがメモリリークです。 今回はメモリリークを検出するのに使えるツールの使い方について書きます。 AddressSanitizer コンパイルオプションをつけるだけで使えて出力も見やすいのでおすすめです。 AddressSanitizerはGCC 4.8以降かLLVM 3.1以降で使うことができます。 コンパイル時にオプションをつけるだけでメモリリークを検出してくれます。(若干実行時間が長くなります) 以下のメモリリークのあるプログラム leak.cpp を例に使い方を説明します。 int main() { int *a = new int[10]; } newで作った動的配列をdeleteしていないのでメモリリークになります。 g++ -fsanitize=address -fno-omit-frame-pointer -g l
「Web3」は巨大企業の独占支配を変えられるのか 大手IT企業による「支配と隷従」に対抗しようという動きが、二〇二〇年代になって活発になってきた。それが「Web3(ウェブ3)」と呼ばれるムーブメントである。ウェブ3はインターネットがふたたび「支配と隷従」へと回帰してきていることに対して、「自由」へと揺り戻そうという思想を持っている。 ウェブ3について、できるだけわかりやすく説明していこう。ウェブ3は、ビットコインで有名な技術、ブロックチェーンを中心に考えられている新たなインターネットである。 ブロックチェーンというのは、ごく単純化して説明すると、「あらゆる取引が記録されている台帳」である。そしてこの台帳は、GAFAMのようなビッグテックが独占所有しているのではない。ビッグテックのサーバーに保存されているのではない。そうではなく、インターネットで相互につながった無数のコンピューターに、同時に
タイムラインに流れていた『もう発注側企業に要件定義能力はないので、要件定義を専門でやる技術者(Requirement Engineer)が世界でも日本でも出てきている』という話に関する極めて個人的な雑感。あるいは記憶のダンプ。 b.hatena.ne.jp 要件定義を専門でやる技術者(Requirement Engineer)の話はいつか来た道 要件定義を専門でやる技術者という話は新しい話ではなく、ゼロ年代後半から議論がされていたものである。 ゼロ年代後半というと、SIerを中心にわりと適切なプロジェクトマネジメント方法論が普及しはじめて、「要求された通りのシステムは開発できるようになってきた」という時代だ。 一方で「システムは開発できるが、要件定義がゴミだと、完成するシステムもゴミ」という問題が残っていて、要件定義の高度化や専門家育成の議論があったのだ。 要求開発~価値ある要求を導き出す
(最新SSD IOはPCIe x4でした。ご指摘ありがとうございます。) はじめに どの処理で律速しているか調べる 各処理の速度改善方法 データ読み込み速度の改善 データ前処理速度の改善 GPU処理速度の改善 コンピューティングについての他記事 はじめに Kaggle Advent Calendar 2022 8日目です。 突然ですが、あなたはDNN学習時にどの処理で学習速度が律速しているか把握してますか? DNN学習には図に示すように大きく3つの要素があります: (SSDからの)データ読み込み (CPUによる)データ前処理 (GPUによる)DNN計算 学習時のデータの流れとしては SSDからデータが読み込まれ、CPUに送られる(SATA or PCIe) CPUにてaugmentationや正規化などの前処理が行われ、GPUにデータが送られる(PCIe x16) GPUにてDNNの計算・
技術者(エンジニア)という言葉を多用するのは良くないと思う。 最近、特にコンピュータ関連の職業に携わっている者のことを総称してエンジニアなどと呼ぶようになってきている。 しかし、ここ数年間コンピュータ界で色々な仕事や経験をしてきた結果、以下のようなことがわかった。 まず、技術者(エンジニア)と呼ばれる人たちは、2種類に分けることができると思う。 1. 本当の意味での技術者 通常、大勢の人たちが無理だと思っていたり、どれだけ試行錯誤してもうまくいかないような (たとえばコンピュータに関連する) 技術的な難題を、人並み外れた凄まじい問題解決能力で解決し、たちどころに目的を達成してしまう能力を持つ特殊な人たちのこと。多くの場合、置換不可能である。誰でも勉強すればなれる訳ではない。 2. 作業員的な技術者 上記を除いたその他大勢の、コンピュータに関する仕事に携わっている人たちのこと。たとえば特殊な
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く