並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 330件

新着順 人気順

benchmarkの検索結果1 - 40 件 / 330件

  • Windows11(22H2)の格安PC買ってやったこと

    何か月か前に話題になっていたIntel N100の中華ミニPCにひかれて、5年以上ぶりに自宅の端末を入れ替えた。Intel N100+メモリ16GB+SSD256GB程+Win11pro付きでお値段2万円強という、信じがたいコスパ。 必ずしも優れているとは言えないスペックでWin11を快適に使うために、買ってから最小限やった設定を書いておく。 ・前提端末OSには粛々とHWの管理だけをしてもらい、「こんな素敵な&便利なWeb機能もあるよ!」的な導線はいらない。TeamsもOutlookも職場で嫌ってほど使っているが、自宅では金輪際使う予定なし。タスクバーのウィジェットもBingへの導線も全部要らない!という人向け。 ※本当はhttps://anond.hatelabo.jp/20191116220232さんのWindows11版の記事が出てればそれで事足りたのだけど、見つけられなかったので投

      Windows11(22H2)の格安PC買ってやったこと
    • データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)

      これはなに ども、レバテック開発部のもりたです。最近めっちゃ元気!! 今回は『データベースについて勉強したいあなたに送る技術書17冊(+11冊1講義7link)』として、もりたがここ半年くらいでわーっと集めたデータベース周りの書籍(とか)を紹介していきます。アプリケーションって結局はデータベースみたいなところがあると思うんですが、おれは長いことデータベースをどう学んだら良いのか分かりませんでした。同じような気持ちを抱えているITエンジニアの人もいると思うので、学習ロードマップと合わせて紹介していきます。 なお具体的な対象読者は業務でなんとなくSQL書いてるけど、ウィンドウ関数とか言われると分からんな……くらいの人です。 扱う領域と扱わない領域 扱う領域としてはだいたい以下 再入門本 SQL 内部構造 論理設計 周辺知識 データベース理論 その他高度なもの モデリング、NoSQL、分散データ

        データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)
      • 凄すぎると話題の「Open Interpreter」の始め方・使い方まとめ - Qiita

        以下の記事を見て、早速「Open interpreter」を試してみたので、使い方や始め方をまとめておきます Open Interpreterとは Open Interpreterは、GPT-3.5、GPT-4、Code Llamaなどの大規模言語モデル(LLMs)を活用して開発されたオープンソースのツールです。 このツールは、OpenAIが提供するChatGPTの「Advanced Data Analysis(旧Code Interpreter)」のオープンソース版とも言える存在で、Python、Javascript、Shellなどのプログラミング言語のコードを自然言語による対話を通じてローカル環境で実行することができます。 このツールの最大の特徴は、ChatGPTの「Advanced Data Analysis」と違いローカル環境で動くため、ファイル容量やネット接続への制約がなく、Ch

          凄すぎると話題の「Open Interpreter」の始め方・使い方まとめ - Qiita
        • 【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita

          はじめに もう文字列の置換で sed コマンド使うの禁止して良いんじゃないですかね? 言いすぎだとわかってあえて言っていますが。 悪い書き方(外部コマンドに頼る方法) # 変数 line に入ってる文字列を echo コマンドで出力して sed コマンドに渡し、 # sed の s コマンドで "from" を "to" に置換して出力したものを ret 変数で受け取る ret=$(echo "$line" | sed "s/from/to/")

            【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita
          • 徐々に高度になるリングバッファの話 - Software Transactional Memo

            リングバッファのイメージ図 1. リングバッファとは何か 機能的にはFirst In First Out (FIFO)とも呼ばれるキューの一種であるが、リング状にバッファを置いてそれの中でReadとWriteのインデックスがグルグルと回る構造をとる事によって容量に上限ができることと引き換えに高速な読み書き速度を得たものである。キューを単に実装するだけなら山ほど方法があって線形リストを使ってもいいしスタックを2つ使っても原理的には可能だ。その中でもリングバッファを用いた方法の利点はひとえに性能の高さでありメモリ確保などを行わないお陰でシステム系の様々な場所で使われている。 これの実装自体は情報系の大学生の演習レベルの難度であるが少し奥が深い。まずリングバッファのスタンダードなインタフェースと実装は以下のようなものである。 class RingBuffer { public: explicit

              徐々に高度になるリングバッファの話 - Software Transactional Memo
            • 日本だけ実質賃金が横ばい…「もっと労働生産性を上げろ!」と主張する人たちに見てもらいたい国際比較グラフがこちら

              nichinichi🏳️‍⚧️🏳️‍🌈 @nichinichibijou こんな悲しいグラフがあるかよ…情け容赦ない搾取が可視化されててシンドイ 日本だけ実質賃金が上がってない(どころか若干下がってる)のに労働生産性だけ右肩上がり…お給料が上がらない(どころか若干下がってる)のに必死こいて働いて生産性を上げることないよ。今こそサボタージュが必要なのでは x.com/shirakawa_love… 2024-04-04 10:08:50 黄色異人/とし雪 @yellowman_a 日本じゃ運用改善で業務効率化、時短にした場合、空いた時間に別の仕事を突っ込まれ給料は上げてくれないという労働者側の感覚が、業務改善は定額プラン(隠語的に)内という経営側の感覚が…という実感はあります。 x.com/shirakawa_love… 2024-04-04 13:24:18

                日本だけ実質賃金が横ばい…「もっと労働生産性を上げろ!」と主張する人たちに見てもらいたい国際比較グラフがこちら
              • パワポのスライドと箇条書きが人間を駄目にする - Qiita

                パワポのスライドと箇条書きが人間を駄目にする 今から20年前の2003年、データの可視化やインフォメーションデザインの先駆者として有名なイエール大学の教授エドワード・タフティが「パワーポイントの認知スタイル」というエッセイを発表しました。 彼はこのエッセイの中で、パワーポイントのようなスライド形式はプレゼンテーション自体の質を低下させ、余計な誤解や混乱を招き、さらに言葉の使い方、論理的な説明、そして統計的な分析といったものが犠牲になるため、スライドをつくる人の思考回路にダメージを与えると主張します。 こうした主張に賛同する人は現在でも多くいて、その典型的な例がアマゾンです。アマゾンではミーティングの前に文章形式の資料が配られ、ミーティングの最初の5分はそれぞれがこの配られたレポートを黙って読むことから始まるという話は多くの方も聞いたことがあるのではないでしょうか。(リンク) 実は、アマゾン

                  パワポのスライドと箇条書きが人間を駄目にする - Qiita
                • インデックスを理解したい - Qiita

                  はじめに みなさんはDBのインデックスを正しく使えていますか? 私はなんとなく「DBのパフォーマンスを向上するためのもの」という認識はあったのですが、 どのような場面で使うものなのか、逆にどのような場面では使うべきでないのかなど 明確に理解できていませんでした。 今回はそんなインデックスについての理解を深めたいと思います。 インデックスとは インデックスとは、その名の通り「索引」です。 表現の仕方と変えると、(x, a)という形式の配列であるとも言えます。 xというキー値とそれに結びつくaというデータ情報があり、 これを利用することですべてのデータを網羅して見ることなく、 まさに本の索引のように目的のデータにたどり着くことができます。 インデックスはSQLのパフォーマンスを改善するための非常にポピュラーな手段であり、 理由としては下記の3点が挙げられます。 アプリケーションのコードに影響を

                    インデックスを理解したい - Qiita
                  • Webアプリケーションのパフォーマンス・チューニングの勘所 / web tuningperformance

                    # 参考資料 - https://speakerdeck.com/hanhan1978/purohuairawoshi-tutaphpapurikesiyongai-shan-falsekan-suo - https://speakerdeck.com/hanhan1978/web-application-tuning-guildline - https://speakerdeck.com/soudai/basic-of-rdb - https://speakerdeck.com/soudai/shi-xing-ji-hua-falsehua - https://fortee.jp/phpcon-2021/proposal/1e11a6b1-08d9-4044-9909-4c90105ea726 - https://fortee.jp/phperkaigi-2021/proposal/1d

                      Webアプリケーションのパフォーマンス・チューニングの勘所 / web tuningperformance
                    • SQLの達人への道: MySQLでの高速・効率的クエリ作成術 - Qiita

                      データベースとテーブルの作成 テスト用のデータベースtestdbを作成し、パフォーマンスチューニングを検証するためのcompanyおよびpersonテーブルを定義します。 CREATE DATABASE testdb; USE testdb; CREATE TABLE company ( company_id INT AUTO_INCREMENT PRIMARY KEY, company_name VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE person ( person_id INT AUTO_INCREMENT PRIMARY KEY, company_id INT, person_name VARCHAR(255) NOT NULL, email VARCH

                        SQLの達人への道: MySQLでの高速・効率的クエリ作成術 - Qiita
                      • FirefoxがついにChromeよりも高速なブラウザに

                        Treeherderは、Mozillaの開発するソフトウェアのテスト結果や、ウェブサービスや外部ツールで取り込んだデータを抽出・加工するETL機能などを有するウェブサイトです。このTreeherderに、Google ChromeとFirefoxのベンチマークテスト結果をまとめたデータが公開されました。これによると、FirefoxはChromeよりも高いスコアを出している、つまりは高速なブラウジングが可能なブラウザということのようです。 Perfherder https://treeherder.mozilla.org/perfherder/graphs?timerange=31536000&series=mozilla-central,3735773,1,13&series=mozilla-central,3412459,1,13 Firefox has surpassed Chrome

                          FirefoxがついにChromeよりも高速なブラウザに
                        • HTTPキャッシュを使いこなして、Webアプリを快適に(1) | IIJ Engineers Blog

                          セキュリティ本部 セキュリティ情報統括室に所属 システム開発者。2000年問題で「2038年問題は定年で対応しなくていい!」とフラグを...。 cats_dogs開発者のヒラマツです。 HTTPキャッシュをうまく使う技術、HTTPキャッシュ制御を解説します。 HTTPキャッシュは、WebアプリなどのWebサービスの通信を最適化する技術です。 HTTPのCache-Controlヘッダーの使い方の話でもあります。 HTTPキャッシュ制御と言っても、Cache-Controlヘッダーの設定だけなので、簡単そうに思えます。 しかし、正しく設定しようとすると、案外、複雑で苦労します。 また、理解なしに使うと、情報漏えいの問題を起こす可能性もあり、適当に設定するのは危険です。 ぜひ、この文章を読んで、理解した上で、Catch-Controlを設定してください。 cats_dogsの仕様を書くときに、

                            HTTPキャッシュを使いこなして、Webアプリを快適に(1) | IIJ Engineers Blog
                          • ビデオカードのメモリが増設できない理由について、昔この業界に関わった..

                            ビデオカードのメモリが増設できない理由について、昔この業界に関わったことがある俺が説明してみる。理由は2つで、技術的ハードルが高い点と需要が無いという点である。 その1 技術的ハードルについて現在主流となっているビデオカードのメモリはGDDR6という規格である。こいつは16Gbpsでデータを転送できるんだが、1bitのデータのやりとりに使えるのはわずか62.5ピコ秒しかないということだ。これってメチャクチャやばい話で、僅か数mmの配線長の違いでも信号のタイミングのずれに影響してしまう。PC系のニュースサイトでビデオカードからクーラーを外した写真がよく掲載されているので試しに見てほしいのだが、タイミングずれが起きないようにGPUの周りを囲むように等距離になる位置にメモリが配置されているのがわかるだろうか?また、このような配置には、配線距離が短くなるメリットもあるのだ。 一方、PCに使われるメ

                              ビデオカードのメモリが増設できない理由について、昔この業界に関わった..
                            • レイテンシ(遅延)とスループット(帯域幅)と帯域幅遅延積 - Qiita

                              マルチクラウド展開にまつわる既成概念を覆すより データ転送では、特に長距離の場合にレイテンシ(遅延)が問題になることがありますが、現在はすべてのクラウド・プロバイダーがそれぞれの物理インフラストラクチャを互いの近くに配置(専門用語では「コロケーション」)しているため、これはさほど問題となりません。この近接性(場合によっては同一コロケーション施設内の別の部屋)は、クラウド間のレイテンシがミリ秒単位であることを意味します。それに加え、クラウド・データセンター・リージョンは世界中で増加しており、クラウド・リージョン間の距離は縮まっています。 という事で、レイテンシ(遅延)について、まとめてみてみます。 ■ Agenda レイテンシ(遅延)とスループット(帯域幅) レイテンシと TCP の動作 帯域幅遅延積(Bandwidth-Delay Product) TCP Window Size の調整と

                                レイテンシ(遅延)とスループット(帯域幅)と帯域幅遅延積 - Qiita
                              • Webシステムにおいて「画像や帳票等のファイルはDBへ格納すべきなの?」を調べてみた(ファントムファイル) - Qiita

                                Webシステムにおいて「画像や帳票等のファイルはDBへ格納すべきなの?」を調べてみた(ファントムファイル)oracleWeb この記事は、 JPOUG Advent Calendar 2023 24日目の記事です。 23日目は multilayer さんの記事『OCIのLanding Zoneについて調べてみた!』でした。 想定読者 ファントムファイルについてよく知らない、帳票の扱い方をあまり考えたことがない人 イントロダクション 皆さん、世の中のWebシステムで利用される画像や帳票ファイルがどこに保存されているかご存知でしょうか? 帳票や大きな画像ファイルなどを扱う際、大きく分けて2つの設計方針があります。 ・DBに直接保存する ・DB外部に保存し、パスなどをDBに保存する オライリーのSQLアンチパターンの、”ファントムファイル”という章にはこのあたりのことが書いています。 [Amaz

                                  Webシステムにおいて「画像や帳票等のファイルはDBへ格納すべきなの?」を調べてみた(ファントムファイル) - Qiita
                                • 型キャストの場所のせいで、秒で終わっていたクエリに1時間超かかるようになってしまった話 - SmartHR Tech Blog

                                  SmartHRで届出書類という機能を担当しているプロダクトエンジニアのsato-sと申します。 今日は、以前私が調査にとても苦労したパフォーマンス上の問題の話を紹介したいと思います。 TL;DR PostgreSQLのアップグレードを実施した アップグレード後、今までは問題のなかった特定のクエリの実行に1時間超かかり、DBのCPU使用率がピッタリ100%に張り付くようになった 色々調査した結果、PostgreSQL上の型キャストの場所のせいで、良くないクエリプランが選択されることが原因だった 型キャストの場所には気をつけよう PostgreSQLのアップグレードと挫折 SmartHRでは基本的にWebアプリケーションのデータベースとしてGoogle CloudのCloudSQLによって提供されるPostgreSQLを利用しています。 私の担当している届出書類機能では、利用中のPostgre

                                    型キャストの場所のせいで、秒で終わっていたクエリに1時間超かかるようになってしまった話 - SmartHR Tech Blog
                                  • 次に来るのはモチパ

                                    風呂でふと思いついたんだが、これまでのなんたらパフォーマンスって、自分が使えるなんたらの節約じゃないか? コストパフォーマンスって可処分資産の節約だろ。 タイムパフォーマンスって可処分時間の節約だろ。 それで考えると、あと節約したくなるものってあれしかないだろ。自分の心の余裕、可処分精神しかないだろ。(どうでもいいけど、マインドシェアって言う奴マジで居なくなったよな) それで考え直すと、上の2つは可処分精神の節約に内包されてるんじゃないのか。 コスパがいい→「値段高!ただでさえ金がないのに、こんなに金掛かるのかよ!」というイライラに思考を取られない タイパがいい→「動画長い!ただでさえ時間がないのに、こんなに待たされるのかよ!」というイライラに思考を取られない どっちも、イライラに思考を取られないのが良いんだろう。ならそれが主体だ。 ということでキャッチーな略称にしたいが、いい単語が全然見

                                      次に来るのはモチパ
                                    • node_modulesの問題点とその歴史 npm, yarnとpnpm

                                      皆さんnpmパッケージのバージョンを上げるときにハマって依存地獄から抜けられなかったことはありませんか? 私はあります。 複雑怪奇な依存関係を調べてみようとnode_modulesを覗いてみて、そのカオスっぷりに臭いものに蓋をしたことはありませんか? 私はあります。 そこでnode_modules以下について調べてみたのですが、node_modulesにどんな問題点があって、npmやyarn, pnpmは何を目指していたのか時系列順に紐解いた方がわかりやすいことに気づきました。 ここでは初期のnpmが抱えていた問題から今に至るまでを順を追って説明します。 するとnode_modulesの仕組みの他に、各パッケージマネージャの方針の違いが見えてくるはずです。 初期の頃のnpm (~2015年以前) この頃はシンプルで、依存関係はそのままnode_modulesのディレクトリ構造に反映されてい

                                        node_modulesの問題点とその歴史 npm, yarnとpnpm
                                      • 開発者が知るべきキャッシュ設計でよく遭遇する問題

                                        はじめに 分散システムの設計および開発において、キャッシュはパフォーマンス向上のための非常に重要な要素です。頻繁にアクセスされるデータをキャッシュすることで、アクセス速度が遅いデータベースへのアクセスを削減し、データへの迅速なアクセスを可能にします。これにより、システムの全体的な効率とパフォーマンスが向上します。 しかし、キャッシュは慎重に設計しないとむしろパフォーマンス上のデメリットになるケースが存在します。 この記事ではよく遭遇するキャッシュ設計の問題とその回避策について解説します。 Cache penetration DBに存在しない値を検索したときに、DBから返された空の結果をキャッシュしない場合に発生するシナリオです。 このシナリオではDBに存在しない値を繰り返し検索することにより、その値がキャッシュされていないため検索ごとにDBへのアクセスが必要になってしまいます。 存在しない

                                          開発者が知るべきキャッシュ設計でよく遭遇する問題
                                        • ARMはx86より効率がいいというのは過去の神話

                                          従来から、「ARMはx86より(電力的に)効率的だ」という言説があります。これは単純に「ARMは省電力なスマホ向けで、x86は電力を食うPC向け」程度のアバウトなイメージのこともありますし、前世紀のRISC vs CISC論争のころからある「ARMはx86 (x64を含む)に比べ命令セットがシンプルなので、命令デコードにかかる電力が少なくて済んで効率的」という議論の形をとることもあります。 この議論については、半導体エンジニアの多くは「ARMがx86 より効率が良いというのは、もはや過去の神話」(in today’s age it is a very dead argument)という認識を共有していると言っていいでしょう。有名なところではApple CPU (ARM)とZen (x86)の両方を開発したジム・ケラー氏のインタビューでも言われていますし、Chips and Cheeseとい

                                            ARMはx86より効率がいいというのは過去の神話
                                          • Galileo AI

                                              Galileo AI
                                            • 「推測するな、計測せよ」という訳はミスリードと言う話 - aki33524’s blog

                                              パフォーマンス改善の文脈で良く用いられるフレーズとして、「推測するな、計測せよ」というものがある。これはRob PikeのNotes on Programming in Cからの引用なのだが、原典と少し印象が違う。 Rule 1. You can’t tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don’t try to second guess and put in a speed hack until you’ve proven that’s where the bottleneck is. Rule 2. Measure. Don’t tune for speed until you’ve measured, and even then don’t

                                                「推測するな、計測せよ」という訳はミスリードと言う話 - aki33524’s blog
                                              • Goで実装された高速な
仮想待合室サーバの実装と詳解

                                                ペパボのテックカンファレンスで話しました。

                                                  Goで実装された高速な
仮想待合室サーバの実装と詳解
                                                • ブラックボックスになりがちな開発チームの内部状況を指標を用いて可視化する|mtx2s

                                                  自社ソフトウェアプロダクトを内製する組織であっても、開発チームがそれをどうやって作り上げているか、開発者ら以外にとってはブラックボックスであり、不可視です。それだけに、開発チームのパフォーマンスや内部状況の良し悪しは、各々の主観や興味によって、不統一な認識を持ってしまうことも多いでしょう。そしてそのような認識のばらつきは、開発する当人たちにとっても実は同じです。 しかし、例えブラックボックスであっても、自動車のダッシュボードのように様々な指標によってその内部が数値化され、可視化されていれば、チームのパフォーマンスに統一的な認識を持たせやすくなります。 本記事では、どのような指標を可視化すべきか、その代表的なものについて取り上げます。 リードタイム(開発、製造)リードタイムは、開発項目ごとの作業期間を計測したもので、短いほど優れていることを示す指標です。計測対象となるプロセス全体を「開発」と

                                                    ブラックボックスになりがちな開発チームの内部状況を指標を用いて可視化する|mtx2s
                                                  • 『LeanとDevOpsの科学』をきちんと解読する 〜Four Keys だけじゃ絶対もったいなくなる話〜

                                                    スクラムフェス福岡2024での講演資料です。 --- 皆さん、職場でFour Keysを導入していますか? Yesと答えた皆さん、『LeanとDevOpsの科学』は読みましたか? あくまで僕の周囲のみの観測で語るのですが、Four Keysを職場で導入しているという人はとても多いのですが、そのうち、出典である『LeanとDevOpsの科学』をきちんと読んだ人はかなり少ないようです。 そして、ここで敢えて強めの主張をするのですが 『LeanとDevOpsの科学』を読まずにFour Keysをきちんと利用することはほぼ不可能です。 Forsgrenらは徹底した研究の結果として4つのメトリクス(指標)を見出すのですが、その裏には彼女らの沢山の思いが詰まっています。その思いや彼女らの思考を理解し、彼女らの考えをきちんとトレースして始めて、Four Keysは意味を持ちます。 そして『LeanとDe

                                                      『LeanとDevOpsの科学』をきちんと解読する 〜Four Keys だけじゃ絶対もったいなくなる話〜
                                                    • Microsoft提供の無償システム最適化ソフト「PC Manager」が「Microsoft Store」に登場/「winget」コマンドでもインストール可能【やじうまの杜】

                                                        Microsoft提供の無償システム最適化ソフト「PC Manager」が「Microsoft Store」に登場/「winget」コマンドでもインストール可能【やじうまの杜】
                                                      • Railsで秒間1000コミットを捌くにはどうすればいいのか (Kaigi on Railsのフリースペースより) - joker1007’s diary

                                                        先日のKaigi on Rails中の雑談として @ima1zumi さんから、RDBに対して秒間1000コミットぐらいで処理が詰まってる場合ってどうするのが良いのか、という質問を受けまして、雑談の中で色々答えてたんですが、せっかくだから記事にまとめておこうと思います。 ちょっとしたKaigi Effectって感じですね。 今回のKaigi on Railsのトークの中では、 数十億のレコードを持つ5年目サービスの設計と障害解決 by KNR - Kaigi on Rails 2023 の話なんかは割と関連がありますね。ユーザーの行動履歴というのは、ユーザー数 * N * タイムスパンで増えていくレコードなので、書き込みとデータ量が爆発しがちです。トランザクションで堅牢に処理しなければいけないケースもそこまで多くないので、RDBだと書き込みに対する処理が過剰なケースが多い。実際のところこの

                                                          Railsで秒間1000コミットを捌くにはどうすればいいのか (Kaigi on Railsのフリースペースより) - joker1007’s diary
                                                        • MySQLのSQLクエリチューニングの要所を掴む勉強会を開催しました! - ANDPAD Tech Blog

                                                          こんにちは!DBREの福間(fkm_y)です。先月、弊社でデータベースの技術顧問をして頂いてる三谷(mita2)さんに開発本部向けの「MySQL SQLチューニング」勉強会を実施していただきました。 今回はMySQLの得意不得意なことの説明やSQLチューニングの流れ、具体的な事例を元にした対応例、また最近話題のHTAPな製品も紹介していただきとても参考になったのでポイントをおさえてレポートをお伝えします! 開催背景 本編 MySQL の得意なこと、苦手なこと データベースのチューニング手段と特徴 SQLチューニングの流れ インデックス SQLチューニング例 インデックスフルスキャンとカバーリングインデックス ソート まとめ 当日の資料 さいごに 過去開催されたデータベース勉強会レポート 開催背景 弊社では三谷さんによるデータベース勉強会を定期的に開催しています。数年前にも同じテーマで勉強会

                                                            MySQLのSQLクエリチューニングの要所を掴む勉強会を開催しました! - ANDPAD Tech Blog
                                                          • strlen() の深淵 - Qiita

                                                            あらまし strlen() という関数がある。御存知の通り、文字列の長さを算出する標準 C ライブラリの関数だ。 やってることは単純で、例えば以下のように実装できる。 size_t strlen_simple(const char* str) { const char* p = str; while (*p) ++p; return size_t(p - str); } '\0' が見つかるまでポインタを進め、初期位置との差分を返すだけだ。これで機能的には std::strlen() と同等である。 では、速度的にはどうだろう?適当にベンチマークを書いて MSVC 2022 でコンパイル&実行するとこうなった。

                                                              strlen() の深淵 - Qiita
                                                            • Linux カーネルをバイパスして TCP 通信を 10 倍速くする | IIJ Engineers Blog

                                                              【IIJ 2023 TECHアドベントカレンダー 12/16の記事です】 この記事について 背景:TCP はコンピュータネットワークの通信において広く利用されているプロトコル・標準化された通信規格です。コンピュータは TCP/IP スタックと呼ばれるようなソフトウェアを実行することで、定められた規格に則って通信を行います。汎用 OS 環境では、TCP/IP スタックは多くの場合、カーネル空間に OS 機能の一部として実装されています。 課題:通信に関するソフトウェアの研究コミュニティでは、そのようなカーネル空間に実装されている TCP/IP スタックは、近年の高速な NIC の性能を十分に引き出すことが難しいという課題が指摘されてきました。 テクニックの紹介:当記事では、近年の研究コミュニティにおいて比較的一般的な高速化テクニックとされている「カーネルをバイパス(迂回)して TCP 通信を

                                                                Linux カーネルをバイパスして TCP 通信を 10 倍速くする | IIJ Engineers Blog
                                                              • 「キャッシュは麻薬」という標語からの脱却 - id:onk のはてなブログ

                                                                これは はてなエンジニア Advent Calendar 2023 の 18 日目の記事です。昨日は id:gurrium による private-isuで70万点取るためにやったこと - ぜのぜ でした。私は 50 万点ぐらいで満足してしまっていたので、しっかり詰めていて凄いなと思う。 developer.hatenastaff.com Web アプリケーション開発において、「キャッシュは麻薬」という言葉がインターネット上をよく飛び交っています。YAPC::Kansai OSAKA 2017 の id:moznion のトークでよく知られるようになったワードじゃないかな。 初出はちゃんとは分からないんですが、少なくとも 2011 年には言われていますね。 「キャッシュは麻薬」とはよく言ったものだ。— TOYAMA Nao (@nanto_vi) November 5, 2011 キャッシ

                                                                  「キャッシュは麻薬」という標語からの脱却 - id:onk のはてなブログ
                                                                • 「プログラマーのためのCPU入門」は入り口として丁度よい!

                                                                  DevTools でパフォーマンスチューニング入門 / Introduction to Performance Tuning with DevTools

                                                                    「プログラマーのためのCPU入門」は入り口として丁度よい!
                                                                  • Zendesk、DynamoDBからMySQLとS3へ移行し、コストを80%以上削減

                                                                    垂直スケーラビリティと効果的なテストによる金融取引システムのパフォーマンスと効率の最大化 Peter Lawrey氏はJavaチャンピオンであり、Chronicle SoftwareのCEOとして、開発者を鼓舞してソリューションのクラフトマンシップを高めることに情熱を注いでいる。経験豊富なソフトウェアエンジニアとして、Lawrey氏はソフトウェア開発プロセスにおけるシンプルさ、パフォーマンス、創造性、革新性を奨励することに努めている。

                                                                      Zendesk、DynamoDBからMySQLとS3へ移行し、コストを80%以上削減
                                                                    • Python 3.12で増えた並列処理と、これまでの並列処理の挙動を比べてみる - Qiita

                                                                      この記事ですることを3行で Pythonの標準ライブラリでできる並列実行を、あらためて総当たりで速度比較しよう ウォーターフォールチャートで、それぞれの並列処理の処理時間の特徴を可視化しよう boto3の実行をモデルケースにして、どの並列処理が一番早いのかを調べよう この記事の結論を先に Python 3.12から本格的に使えるようになったサブインタープリターは、CPUで実行する処理について言えば、従来のサブプロセスよりも高速 boto3の実行は、サブインタープリターよりも署名付きURLの非同期実行のほうが速い → S3からの10ファイルの取得であれば、実行時間を90%削減できます → Bedrockの3回実行であれば、実行時間を60%削減できます 今回使ったソースコードはこちらに置いています。 お手持ちの環境で再実行できるようにしていますので、気になる方はぜひ。 どうしてこの記事を書くの

                                                                        Python 3.12で増えた並列処理と、これまでの並列処理の挙動を比べてみる - Qiita
                                                                      • SvelteはなぜReactよりも優れているのか

                                                                        Svelte は比較的新しいフレームワークです。主に、仮想 DOM の課題が浮き彫りになってきた後で、それを解消しようというモチベーションで開発されています。なぜ Svelte が React や Vue などのように仮想 DOM を採用していにないのかについて、この記事でまとめてみようと思います。 読み書きしやすい:リアクティブなコンポーネントを実装するための"高級言語" 高速:仮想 DOM を利用しない 1. 読み書きしやすい:リアクティブなコンポーネントを実装するための"高級言語[1]" Svelte はリアクティブなコンポーネントを実装するためのコードを記述する上で一般的な UI フレームワークよりも人間が扱いやすい設計になっています。具体的に言うと、記述量が少なく、理解しやすい構文を実現しています。 例えば、React で以下のようなコンポーネントがあった場合を想定します。 im

                                                                          SvelteはなぜReactよりも優れているのか
                                                                        • Why Is SQLite Coded In C

                                                                          Note: Sections 2.0 and 3.0 of this article were added in response to comments on Hacker News and Reddit. Since its inception on 2000-05-29, SQLite has been implemented in generic C. C was and continues to be the best language for implementing a software library like SQLite. There are no plans to recode SQLite in any other programming language at this time. The reasons why C is the best language to

                                                                          • 負荷テストツール「k6」入門

                                                                            こんにちは。 PharmaX でエンジニアをしている諸岡(@hakoten)です。 この記事の概要 APIの負荷テストツールにGrafana Labs社が開発している「k6」というツールがあります。 k6はオープンソースのCLIツールですが、 「Grafana Cloud k6」というクラウドベースSaaSツールも提供されている便利なツールです。 ローカルのk6は、負荷テストの時に使ったことはあったのですが、真面目に負荷テストの設計をするにあたり、ちゃんと理解したかったため、改めて基本から調べてみました。k6の入門記事としてお役に立てれば嬉しいです。 インストール Macでは、k6を「Homebrew」でインストールすることができます。

                                                                              負荷テストツール「k6」入門
                                                                            • MySQLでUUIDv4をプライマリキーにするとパフォーマンス問題が起きるのはなぜ?(N回目)

                                                                              はじめに こんにちは、令和トラベルでバックエンドエンジニアをしている飯沼です。 MySQLでは、UUID (v4)などのランダム性の高いIDをプライマリキーに設定すると、パフォーマンスが低下すると言われています。私自身もこの問題については認識しておりアンチパターンとして避けて来ましたが、イマイチ理由を理解できず何度も調べていたので自分の理解を整理しました。 ※ この記事は令和トラベルのTech LT会で共有した内容を記事にしたものです。社外の方にもご参加いただけるTech LT会は connpass にて告知しています。 UUIDをプライマリキーにするユースケース そもそもUUIDをプライマリキーにするユースケースはどのようなものがあるのでしょうか? いくつかの観点から考えてみます。 パフォーマンス観点 大量の同時書き込みが発生するような状況でauto incrementを利用してIDを発

                                                                                MySQLでUUIDv4をプライマリキーにするとパフォーマンス問題が起きるのはなぜ?(N回目)
                                                                              • AWS、高速起動にこだわった軽量なJavaScriptランタイム「LLRT」(Low Latency Runtime)をオープンソースで公開。AWS Lambdaでの利用にフォーカス

                                                                                AWS、高速起動にこだわった軽量なJavaScriptランタイム「LLRT」(Low Latency Runtime)をオープンソースで公開。AWS Lambdaでの利用にフォーカス Amazon Web Services(AWS)は、実験的な実装としてサーバレス環境のAWS Lambdaで使うことにフォーカスした軽量なJavaScriptランタイム「LLRT」(Low Latency Runtime)をオープンソースで公開しました。 LLRTはRustで開発され、JavaScriptエンジンにはQuickJSを採用しています。 LLRTの最大の特徴は、現在のJavaScriptランタイムにおいて性能向上のために搭載されているJITコンパイラをあえて搭載せず、よりシンプルで軽量なランタイムとして実装することで高速に起動することにこだわっている点です。 これにより(Node.jsやDenoや

                                                                                  AWS、高速起動にこだわった軽量なJavaScriptランタイム「LLRT」(Low Latency Runtime)をオープンソースで公開。AWS Lambdaでの利用にフォーカス
                                                                                • MySQL(InnoDB)のSQLパフォーマンスチューニングのエッセンス

                                                                                  はじめに MySQL(InnoDB)でSQLのパフォーマンスチューニングをするときに役に立つ知識をエッセンスとしてまとめました。結合(JOIN)やB-treeインデックスの探索の仕組み、実行計画の基本的な見方を紹介します。 想定する読者は、SQLのパフォーマンスを改善する必要があるが実行計画をみてもいまいちピンと来ない方です。インデックスの作成の経験や、複合インデックスやカーディナリティの知識があることを前提にしています。目標は、実行計画の内容がよく分からない読者が、実行計画をみただけでクエリが実行される様子をイメージでき、自信を持ってクエリの改善にあたることができるようにすることです。 ストレージエンジンはInnoDBを前提としています。また、インデックスはB-treeインデックスを想定しています。全文検索の転置インデックスや空間検索のR-treeインデックスについては触れません。 イン

                                                                                    MySQL(InnoDB)のSQLパフォーマンスチューニングのエッセンス