並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 47件

新着順 人気順

C10K問題の検索結果1 - 40 件 / 47件

  • 個人開発で「Excel専用のWebAPI」を作りました

    どういうもの? このように関数を使ってデータを取り込めます。 背景 元々は「インターネット上のWebAPIのデータをExcelに取り込みたい」と思ったのがきっかけです。 VBAマクロを使えば簡単ではありますが、マクロは使いたくないという方も多いのではないでしょうか。かくいう私も勤務先が属人化を防ぐためにマクロの使用を推奨していません。 そこで、関数を使用する方法を選択しました。 ExcelにはWEBSERVICE 関数という指定したURLの応答データを取り込む関数があります。 しかし、この関数は大変便利な関数ですが、ExcelはHTMLやJSONのパーサーを用意していません。結局取り込んだHTMLやJSONの処理にはVBAマクロが必要になります。 また、欲しいWebAPIが存在しない問題もありました。 そこで、Excelでデータを編集するのではなく、元々のWebAPIをExcel用に作れば

      個人開発で「Excel専用のWebAPI」を作りました
    • Re: NginxとApacheって何が違うの?? - inductor's blog

      これは何 以下記事のアンサーブログです。 qiita.com 以下のことはコメントに書いたんですが、書ききれなかった部分もあったり整理したほうがいいなと思い記事に起こしています。 現代のアプリケーションではC10K問題よりも先にDBやアプリケーションのボトルネックが先に来るため、C10K問題に遭遇するよりも先にやることがある ミドルウェアとしての成り立ちから設定ファイルの書き方に至るまで、それぞれのソフトウェアで思想が根本的に異なるので、単なるパフォーマンス比較をしてもあまり意味がない NginxとApacheの違いをC10K問題を中心に語るのは時代が違う この記事に限らず、多くの「Nginx vs Apache」系記事では「ApacheはC10K問題を抱えている」という論理をベースにそれぞれの違いを表現しています。 が、これは2022年においては(実際にはもっと前からですが)既に事実では

        Re: NginxとApacheって何が違うの?? - inductor's blog
      • 0から始めるNode.jsパフォーマンスチューニング

        近年の Node.js は API のサーバとしてはもちろん、Nuxt.js や Next.js といった SSR や BFF などフロントエンドのためのバックエンド言語としての人気が高まっています。 フロントエンドエンジニアがコンテキストスイッチ少なくバックエンドの整備ができることは非常に大きな利点です。 ですが、フロントエンド(ブラウザ側)とバックエンド(サーバ側)ではパフォーマンスチューニングで見るべき点が大きく違います。 しかし Node.js アプリケーションのパフォーマンスイシューの見つけ方などがまとまっている資料は少ないです。 そこで、本記事ではフロントエンドエンジニアが Node.js でパフォーマンスイシューを見つけ、改善するため自分が普段パフォーマンスチューニングを依頼されているときにみている基礎的なポイトをまとめていきます。 1. 計測ステップlink Node.js

          0から始めるNode.jsパフォーマンスチューニング
        • Rustの非同期プログラミングをマスターする - OPTiM TECH BLOG

          こんにちは、R&Dチームの齋藤(@aznhe21)です。 さあみなさん、ついにこの時がやってまいりました。 本日2019/11/8にリリースされたRust 1.39により、あらゆる環境で最高速な非同期プログラミングが可能になりました。 新たな時代に乗り遅れないよう、今のうちにRustでの非同期プログラミングをマスターしておきましょう。 なお、この記事は、先日開催したOPTiM TECH BLOG Meetupの内容を大幅に加筆修正した上でエントリに仕上げたものです。 まず最初に伝えたいこと 非同期の歴史 Rustの非同期プログラミングの歴史 Rust 1.0以前 Rust 1.0 〜Rust 1.3 Rust 1.2あたり Rust 1.11あたり Rust 1.26あたり Rust 1.36 Rust 1.39 Rustの非同期プログラミングの特徴 ゼロコスト抽象化 プラットフォーム非依

            Rustの非同期プログラミングをマスターする - OPTiM TECH BLOG
          • Node.jsの後悔から生まれた新しい実行環境・Deno入門 〜簡単なアプリケーション作成ハンズオン付き〜 | さくらのナレッジ

            こんにちは!小田島です。ウェブ業界に来る前は手品業界で働いていました。最近は外出自粛で手品をやる機会がないので家でひたすら練習しています。 前回の記事「いまさら聞けないNode.js」は、「わかりやすい」「いい記事」「背景の説明が丁寧」といった好意的な反応が多くて安心しました。 「Denoについては後日記事を書きます」と前回宣言したので、今回はDenoについての入門記事を書きます。よろしくおねがいします! 対象者 今回は、こんな人が対象です。 Denoって何? Node.jsとどう違うの? 全然触ったことないけど何か簡単で応用が効くものを作ってみたい 前回と違い、ハンズオンも含まれています。ぜひ読みながら実際に動かしてみてください。 Denoとは? 前回同様に超ざっくりと説明すると、JavaScriptとTypeScriptの動作環境です。作者はNode.jsと同じライアン・ダールです。D

              Node.jsの後悔から生まれた新しい実行環境・Deno入門 〜簡単なアプリケーション作成ハンズオン付き〜 | さくらのナレッジ
            • C10K 問題、実は理解していない

              お願い 「C10K 問題とは何か」がわかる方は是非 Issue や Twitter などで教えてください。 追記: 自分の立場 1req ごとに 1 native thread を割り当てていたら、クライアントの数が増えれば増えるほど負荷が高まるのは当然だ。ただハードウェアの性能的に余裕があっても性能が劣化することがあり、それを C10K 問題と呼ぶ。C10K 問題は fd, pid の枯渇、スレッドを固定長サイズで確保することによるメモリの無駄遣い、コンテキストスイッチコストを含む。これを解決する方法が 1req ごとに 1 native thread を割り当てない技術で、シングルスレッド+イベントループ+IO 多重化といったテクニックや M:N モデルにつながる。 追記: @naoya_ito さんに解説してもらった当時の歴史的背景 https://twitter.com/naoya

                C10K 問題、実は理解していない
              • いまさら聞けないNode.js | さくらのナレッジ

                こんにちは!小田島です。さくらのナレッジで初めて記事を書きます。よろしくお願いします! 先日5月13日、Deno 1.0がリリースされました。Denoについては後日記事を書きますが、今回はDenoが生まれるきっかけとなったNode.jsについて、いまさら聞けないことを色々書いていきます。 対象者 本記事は、Node.jsについて以下のような疑問を持っている人が対象です。 Node.jsって何? Node.jsを使うと何がうれしいの? Node.jsを使うときに何を注意すればいいの? なお、本記事はNode.jsのイメージを掴んでもらうのが目的であり、ハンズオンではありません。そのためコードは1行も出てきませんのでご了承ください。 そもそもNode.jsとは? 超ざっくり説明すると、JavaScriptの実行環境です。 それまではJavaScriptといえばウェブブラウザー上で動かすのが普通

                  いまさら聞けないNode.js | さくらのナレッジ
                • NginxとApacheって何が違うの?? - Qiita

                  はじめに Webサーバーを使うときに、NginxとApacheって言葉よく耳にしますよね。 ただその違いっていまいち良くわからなくないですか??(僕だけだったらすみません笑) ちなみに僕は「Nginxの方がなんか人気だし良さそうな気がする。。。」という何の根拠もないイメージしか持っていませんでした。 さすがにもう少しちゃんと理解したいと思い、今回はこの違いを記事にしてみました。 ぜひぜひ最後まで読んでみてください〜! ※ちなみにNginxとApacheはそれぞれ、「エンジンエックス」「アパッチ」と読みます。 そもそもNginxとApacheとは? NginxとApacheはWebサーバーのソフトです。 サーバーにこれらのソフトをインストールすると、Webサーバーとしての機能をもちます。 Webサーバーソフトにおいて、2021年12月時点でNginxとApacheが圧倒的シェアを誇っています

                    NginxとApacheって何が違うの?? - Qiita
                  • Webエンジニア(30歳)だけど4年かけて工学学士を取った - Qiita

                    0. はじめに Bizer株式会社でフルスタックエンジニアとして働きながら、国立大学法人電気通信大学の先端工学基礎課程(通称 K課程)という社会人向けの学士課程に在籍しています。 この春(2021年3月)に卒業予定のため、いちソフトウェアエンジニアから見た大学教育や学歴に対する考えをまとめておきます。 1. 対象読者 理系大学のカリキュラムがソフトウェアエンジニアという仕事にどう活きるか分からない方 就業しながら学士を取ろうとしている方 ソフトウェアエンジニアと学歴の関係性を不透明に感じている方 2. 現職エンジニアが工学学士を取る理由 18歳で最初の大学を中退しエンジニアとして働き始めたため、途中の放浪期間などを差し引き、ソフトウェアエンジニアとしてのキャリアは現在10年程です。つまり大学入学時点では6年程のキャリアがあり、それなりに幸せなエンジニアライフを送っていました。 ではなぜ既に

                      Webエンジニア(30歳)だけど4年かけて工学学士を取った - Qiita
                    • 令和にふりかえる C10K 問題

                      C10K 問題 (the C10K problem) は1999年に Dan Kegel が発表した文章、ならびにそこで提示された「問題」です。文章はその後も2000年代前半に何度か更新されているのですが、さすがに令和に読み返すと、当初の問題意識がわかりにくいところがあります。 2000年からの10年は、 ソフトウェア面では、select(2), poll(2) にかわる新しいシステムコールの実装と、それを使ったアプリケーションの普及 ハードウェア面では、x86 アーキテクチャの64ビット移行、仮想化命令の追加と、マルチコア化 さらにそこにクラウドも登場する、面白い時代でした。ここでは、それらの出来事を中心に、さらに、当時の雰囲気をつたえるような日本国内のブログやインタビュー記事をまとめることで、C10K 問題が、さまざまな側面から解決されていく流れを説明したいと思います。 書き足したいと

                      • プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ

                        技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、ついに Ruby 3.0.0 がリリースされました。一昨年、昨年に続き、今年も Ruby 3.0 の NEWS.md ファイルの解説をします。NEWS ファイルとは何か、は一昨年の記事を見てください(なお Ruby 3.0.0 から、NEWS.md にファイル名を変えました)。 プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ Ruby 3.0 は、Ruby にとってほぼ 8 年ぶりのメジャーバージョンア

                          プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ
                        • Re: WebサーバーアーキテクチャとPHP実行方式の理解から始めるphp-fpmとはなにか?

                          この記事のモチベーション 「php-fpmとはなにか?」を知るため、PHPのドキュメントを見ました。 しかし、ここに書いていることはまあそうなのですがあまりに焦点が絞られ過ぎてて「php-fpmとはなにか?」に対する答えとしては少し不十分な気がしていました。 例えるなら数学の問題に答えるにあたって、途中式を飛ばしたり証明の過程を飛ばしたりというような感じ。 不十分というのは、それを理解するための段階をすっ飛ばして答えだけが書かれている状態のことを指しています。 その不十分なところを自分も曖昧にしか理解できていない気がしており、いい機会なので整理しておこうというのがこの記事のモチベーションです。 そのためこの記事は、「php-fpmとはなにか?」をプロセス→Webサーバー→実行方式と順を追って説明していく構成になっています。 「細けぇこたぁいいんだ、おらぁ今すぐ答えだけ知りてぇンダ」という方

                            Re: WebサーバーアーキテクチャとPHP実行方式の理解から始めるphp-fpmとはなにか?
                          • Goとマルチコアスケール実装

                            マルチコア化の未来予測 半世紀前にSF映画「2001年宇宙の旅」に登場するコンピューターHAL-9000が並列コンピューティングの未来を示しました。マルチコアで構成されたコンピューターの物理コアを取り除いてもすぐにクラッシュせずに性能ダウンして処理が継続するという演出がありました。 当時ですらシングルコアコンピューティングの限界が予想されていて、現状のコンピューティングがマルチコア化しているという未来をしっかり予測できていたことがわかります。 演出はコア数に応じてコンピューティング性能がスケールしていることを表現しています。これはマルチコアスケールするソフトウェア実装の未来を示していたと思います。 シングルコア性能向上の頭打ち 2003年以降あたりはCPUの動作周波数が伸び悩み出したところ。 https://queue.acm.org/detail.cfm?id=2181798 より その

                              Goとマルチコアスケール実装
                            • 非同期処理の道具箱 — HACK The Nikkei

                              この記事はNikkei Advent Calendar 2022の 13 日目の記事です。 こんにちは、Web チームの井手です。最近 Web チームで働く魅力について語ったので是非とも読んで欲しいです。 今日は非同期ランタイムについて書きます。 私は非同期ランタイムやサーバー進化論が好きで、たまにブログを書いたり、前職でもアドベントカレンダーに書いたりしていました。 本稿では効率的な非同期処理を実現するライブラリが中で何をしているのかを、低レイヤーの非同期処理そのものを解説しながら見ていきたいと思います。説明の都合上 Rust を使うので、Rust 特有の話もありますが、低レベルな API があればどの言語でも当てはまる話だと思います。この辺りは Rust, Scala(JVM), Erlang, Go などはお互いがお互いのアイデアを参考にしていて切磋琢磨しつつも似た仕組みをそれぞれが

                                非同期処理の道具箱 — HACK The Nikkei
                              • Node.jsの非同期I/Oについて調べてみた

                                こんにちは、本記事は リクルートライフスタイル Advent Calendar 2019 13 日目の記事です。今日は sadnessOjisan がやっていきます。この記事では Node.js の非同期 I/O について調べたことを紹介します。 調べようと思ったきっかけは、先日の JSConfJP で Wrap-up: Runtime-friendly JavaScriptというランタイムレベルでの最適化を解説したセッションを見て Node.js の理解を深めたいと思ったからです。私は Node.js でのコーディングは多少経験がある程度なので、まずは Node.js の大きな特徴である非同期 I/O からキャッチアップすることにしました。 Node.js の大きな特徴 Node.js は公式の説明を借りると、スケーラブルなネットワークアプリケーションを構築するために設計された非同期型の

                                  Node.jsの非同期I/Oについて調べてみた
                                • Rustの未来いわゆるFuture - OPTiM TECH BLOG

                                  Rust 1.36がリリースされ、皆さん待望のFuture関連のAPIが安定化されました。 この記事ではFuture関連APIを巡る過去と未来を紹介します。 Q&A(TL; DR) 長くなってしまったので要約をまとめました。 細かい話は目次以降をご覧ください。 Futureは何のために必要? Futureは非同期処理を抽象化したもので、Rustにおけるあらゆる非同期処理はFutureの上に成り立ちます。 処理をFutureによって隠蔽することで、 ただ非同期に処理するだけでなく処理のパイプライン化、 すなわち単一のスレッドで複数の処理を実行出来るようになります。 futuresクレートではだめなの? async/await構文を入れるために言語コアに取り込まれました。 futures 0.1と合わせて使える? futures 0.3には互換性レイヤーがあり、相互に変換出来るため問題ありませ

                                    Rustの未来いわゆるFuture - OPTiM TECH BLOG
                                  • Goは本当に1980年代の言語みたいなのか。 - Qiita

                                    はじめに 2020年8月15日現在、golang.orgのトップページに、The Why of Goという動画が、Featured Videoとして紹介されています。 Goに初めて触れて、ちょうどなぜこうなっている?と思う機会が多かったので、自分なりにまとめてみようと思います。 注: 要約というよりは、気になる部分をピックアップして解釈して文字にしているものなので、総合的な内容は動画を見てください。 Goとは1980年代の言語なのか Goとは1980年代の言語のようだと批判される。糖衣構文、多態、Genericsが使えない、依存性管理が粗末等と批判する人にとってGoは、1980年代以降のプログラミング言語の進化の歴史を無視しているように見えるようだ。 だけど、それらの要素があったら21世紀のプログラミング言語といえるということなのだろうか? このプレゼンテーションでは、そういう疑問をきっか

                                      Goは本当に1980年代の言語みたいなのか。 - Qiita
                                    • モダンなJavaScript/TypeScript実行環境「Deno」

                                      class: middle, center <img src="./assets/logo.svg" align="center" width="200" /> モダンな JavaScript/TypeScript 実行環境 Deno --- class: middle, center 「Deno」 聞いたことありますか? 🙋‍♀️ 🙋‍♂️ --- class: middle, center 「Deno」 使ったことありますか? 🙋‍♀️ 🙋‍♂️ --- class: middle, center 今日は Deno を 「聞いた事ない」 ~ 「触った事はある」 ぐらいの人向けの話をします --- # 話す人 <img src="./assets/hinosawa.jpg" align="right" width="300" /> 日野澤歓也 twitter @kt3k Web

                                        モダンなJavaScript/TypeScript実行環境「Deno」
                                      • YYPHP#92「なぜDockerは日本で受け入れられてないのか?」「RiinさんにLTのコツを聞く」「オレオレフレームワークからLaravelに移植する上での悩み」「インターフェースって何?」 - Qiita

                                        YYPHP#92「なぜDockerは日本で受け入れられてないのか?」「RiinさんにLTのコツを聞く」「オレオレフレームワークからLaravelに移植する上での悩み」「インターフェースって何?」オブジェクト指向DockerYYPHP これは2019年7月12日に開催したPHPerイベントYYPHP#92のイベントレポートです。 YYPHPは一言で「PHPerの部室」です。PHPについて、雑に、ゆるく、ワイワイ話し合う集いです。毎回お題を決めずに雑談を出発点にいろいろなことを突発的にやります。集まった人でコードリーディングをすることもあれば、一緒に開発ツールを触ってみたり、フレームワークについての情報交換をすることもあります。開催はほぼ毎週、高田馬場にて。 今回の配信動画 YYPHP生配信はじめました!「なぜDockerは日本で受け入れられてないのか?」「RiinさんにLTのコツを聞く」「オ

                                          YYPHP#92「なぜDockerは日本で受け入れられてないのか?」「RiinさんにLTのコツを聞く」「オレオレフレームワークからLaravelに移植する上での悩み」「インターフェースって何?」 - Qiita
                                        • 多言語からみるマルチコアの活かし方

                                          多言語からみるマルチコアの活かし方 はじめに 近年では1つのCPUに複数のコアが搭載されたマルチコアが一般的になっています。 しかし、現状のプログラミング言語ではエンジニアが意識せずにマルチコアをしたプログラムを作ることは難しいです。 そこで、様々な言語から見たマルチコアの活かし方について説明していきます。 プロセスとスレッド プロセスとは1つ1つのアプリケーションといった実行中のプログラムのことで、スレッドは CPU利用の単位です。プロセスは次のように1つ以上のスレッドを持っており、CPUのコア数分だけスレッドを処理することができます。(また、近年ではSMTという技術によって1つの物理コアで2スレッドといった複数のスレッドを処理することができます。2コア4スレッドみたいなやつです) マルチコアを有効活用してプログラムを実行するためにはCPUが処理できるコア数に対して適切な数のスレッドをプ

                                            多言語からみるマルチコアの活かし方
                                          • Nginxのアーキテクチャを理解する - Qiita

                                            Nginxのアーキテクチャについて調べてたことをまとめた。 用語のおさらい プロセス(Process) プログラムの実行単位であり、CPU時間単位で割り振られる。 状態(ステート)があり、現在処理中であるRunning状態だったり、実行可能状態であるReady等が存在する。 CPUがプロセスを実行する場合、そのプロセスが持つメモリデータに対して演算を行う。 プロセスはテキストセグメントとデータセグメントからなる構造データをメモリ上に持っている。 テキストセグメント プログラムの命令列 データセグメント PDA (Processor Data Area)と呼ばれる、プロセッサの情報やプロセス管理用のデータ領域 データ領域と呼ばれる、定数等が置かれる静的領域と、通常の変数等が置かれるヒープ領域からなる領域 スタック領域と呼ばれる、一時的なデータ保管領域 実行中のプロセスを確認 ~ ❯❯❯ ps

                                              Nginxのアーキテクチャを理解する - Qiita
                                            • Java Beans の大罪 〜 getter/setter を捨てて美しきオブジェクトの世界で生きよ〜 - A Memorandum

                                              まえがき はじめに Java Beans の誕生 サーバサイドの台頭 Struts と BeanUtilsの興起 Enterprise JavaBeans ORM の台頭 getter/setter は良くない習慣です なぜ getter/setter は悪なのか 悪の囁きに対する処方箋 まとめ まえがき 以下のコードを見てください。 Car car = new Car(); car.getEngine().getFuelContainer.setFuel(Fuel.litreOf(30)); もしあなたが、このコードに違和感を感じたのであれば、以下の記事を読む必要はありあません。 はじめに 開発の現場では今なお、疑問を挟む余地なく Bean という言葉が使われ、それに付随する getter/setter の呪縛に囚われ続けた状態が続いています。 この慣習は広く蔓延し、多くの開発者の思考を

                                                Java Beans の大罪 〜 getter/setter を捨てて美しきオブジェクトの世界で生きよ〜 - A Memorandum
                                              • Builderscon2019の参加レポート - MicroAd Developers Blog

                                                こんにちは、まっつーです。 Builderscon2019が終わって早1ヶ月が経とうとしていますが、builderscon2019の2日目に参加してきたのでそのレポートを書きたいと思います! ↓ マイクロアドのエンジニア達です。スポンサー特典で招待枠をもらったので参加させてもらいました! 目次 Open SKT: メルペイ開発の裏側 CN Buildpacksが作る未来 非同期処理の歴史から見たコンピューティングの進化 ウォレットアプリ「Kyash」の先 〜「Kyash Direct」のアーキテクチャ〜 まとめ Open SKT: メルペイ開発の裏側 speakerdeck.com 1本目は株式会社メルペイ Masahiro Sanoさんの発表を聞きました。 「Open SKT: メルペイ開発の裏側」ということで、幅広いテーマを取り上げて、タイトル通り開発の裏側を紹介されていました。 金融

                                                  Builderscon2019の参加レポート - MicroAd Developers Blog
                                                • React入門!!の前に知っておきたいNode.jsとJavaScriptの知識 - Qiita

                                                  対象読者とこの記事から何が得られるのか そろそろReactの勉強をはじめてみたい、勉強したいと思っているけど、以下のようなことを考えて前に進めない方向けの記事です。 JavaScriptの知識レベルはこれくらいで足るのか? 他に知っておくことはないのかな? この記事を読むことでReact入門の前に知っておきたいNode.jsとJavaScriptの知識を得ることができると思います。 Node.jsをざっと知る Node.jsを簡単に言うと JavaScriptをブラウザではなくPythonやRubyなどと同じようにターミナル上で動かすことができるようにするための実行環境のことであり、バックエンド言語としてJavaScriptを使うことができ、ファイル操作などのOSの機能にアクセスできます。 公式ページだと以下のように記載されています。 Node.js はスケーラブルなネットワークアプリケー

                                                    React入門!!の前に知っておきたいNode.jsとJavaScriptの知識 - Qiita
                                                  • Node.jsの設計をつらつらと概観する - Qiita

                                                    株式会社Global Mobility ServiceでソフトウェアエンジニアのインターンをさせてもらっているShirubaです。グローバルな環境で利用されている社会的サービスの開発の一端を担いたい志ある方は、ぜひ緩くお話ししましょう〜。バックエンドはNode.jsを使っています。🙋‍♂️→ 採用ページ Node.jsについて色々資料を読んでメモをとったりしていたので、一度まとめておきたくて、この記事を書くことにしました。V8やLibuvなど低レイヤ技術の設計をベースにNode.jsを概観していきます。 Node.jsとは Node.js公式によるNode.jsの定義は以下です。 Node.js はスケーラブルなネットワークアプリケーションを構築するために設計された非同期型のイベント駆動の JavaScript 環境です。 https://nodejs.org/ja/about/ Nod

                                                      Node.jsの設計をつらつらと概観する - Qiita
                                                    • NginxとApacheをわかりやすく比較、Nginxが「絶対王者」のApacheを超えたワケ

                                                      Nginx(エンジンエックス)とはNGINX社が提供しているフリーかつオープンなWebサーバ用のソフトウェアで、大量のクライアントからのアクセスを同時に処理しようとするとレスポンスが大きく下がる「C10K問題」に焦点をあてて開発が行われているのが特徴だ。 2021年6月時点でのWebサーバソフトウェアのシェア(出典:W3Techs.com)を見ると、Nginxはこれまで長く「絶対王者」として君臨していたApacheを抜き、1位となっている。NginxがなぜApache越えを果たすことができたのか。そこにはNginxの機能や特徴に理由がある。 Apacheと何が違うのか NginxとApacheの違いについて、それぞれの特徴を一言で表すと以下のような言い方ができる。 Apacheは、すべての動作を平均的にこなすことができる、オールマイティーなWebサーバといえる。 Nginxは「静的コンテン

                                                        NginxとApacheをわかりやすく比較、Nginxが「絶対王者」のApacheを超えたワケ
                                                      • Java によるネットワークプログラミングの基礎知識 - A Memorandum

                                                         はじめに プログラミングモデルの変遷 ソケット ソケットによるサーバ実装 スレッドプールを利用したサーバ実装 ブロッキングI/Oの課題 ノンブロッキングI/O I/O多重化(multiplexing) バッファ操作 I/O多重化を使ったサーバ実装 非同期チャネル NIO2 によるエコーサーバ まとめ はじめに Java でネットワークプログラミングを行うのであれば Netty を使えば良いのですが、Netty に至るまでの標準APIの変遷についての話題は知っておいて損はない内容だと思います。 いまさら書く必要のある内容では無いかもしれませんが、とりまとまった情報源も乏しいため、Java標準APIを利用したネットワークプログラミングについて説明していきます。 プログラミングモデルの変遷 Java でネットワークプログラミングを行うには、JDK1.4 以前では Socket を使ったシンプ

                                                          Java によるネットワークプログラミングの基礎知識 - A Memorandum
                                                        • 「Django Async Viewって何がおいしいの?」 知ってしまえば怖くない非同期IO処理“asyncio”

                                                          「DjangoCongress JP」は日本で開催されるDjango Webフレームワークのカンファレンスです。参加する全ての人がDjangoについて交流し、出会い、学び、楽しみ、深い理解を得ることを目的にしています。福田氏は、Django 3のASGI対応について発表しました。全2回。前半は、ASGI対応の概要とasyncioの基礎について話しました。 Django 3の目玉の1つ「ASGI対応」 福田隼也氏:「Django 3.2 ASGI対応 - こわくないasyncio基礎とasync viewの使い所」ということで、今日お話しします。福田です、よろしくお願いします。 まずお前誰だよというところで、福田隼也と申します。「Twitter」は@JunyaFffといいます。長野県の会社の株式会社日本システム技研に所属しています。 Webエンジニアをしていて、弊社の運営する「GEEKLAB

                                                            「Django Async Viewって何がおいしいの?」 知ってしまえば怖くない非同期IO処理“asyncio”
                                                          • なぜAPサーバーをWebサーバーとして利用しないのか - Qiita

                                                            はじめに よく聞く話として、「Web3層構造に分けよう」というものがある。Webサーバー、APサーバー、データベースだったと思う。そこで、こんな疑問が生じた。「APサーバーでもHTTPリクエストの処理ができるなら、なんでWebサーバーが必要になるんだ?」と。調べた。 目次 Webサーバーとは? APサーバーとは? WebサーバーとAPサーバーを分けるもう1つの理由 Webサーバーとは? まずWebサーバーとして、ApacheとNginxの2つが挙げられることが多い。この2つについて理解する。次の記事を読んでみて欲しい。 1. ApacheとNginxについて比較 2. Nginxのアーキテクチャを理解する 1つ目の記事では、Apacheがマルチプロセスのプロセス駆動アーキテクチャであること、Nginxがシングルスレッドモデルのイベント駆動アーキテクチャであることがわかる。 2つ目の記事では

                                                              なぜAPサーバーをWebサーバーとして利用しないのか - Qiita
                                                            • サーバー入門、非同期処理入門、epoll 入門

                                                              この記事は sadnessOjisan Advent Calendar 2021 20 日目の記事です。書かれた日付は 1/13 です。 フロントエンドエンジニアとして JS を JS のレイヤーでしか扱ったことがなかった僕が NodeJS の非同期ランタイムを調べていたときについでで epoll を勉強したときのメモをまとめたものです。 コンピュータサイエンスの専門的な教育を受けたわけでもないし、趣味でしか勉強したことがない範囲なので、もしかしたら間違いがあるかもしれません。 そのため間違いを発見しましたらご指摘してくれると助かります。(https://github.com/sadnessOjisan/blog.ojisan.io に PR/Issue を投げてくれると一番助かります。) 参考にしたもの ふつうの Linux プログラミング 第 2 版  Linux の仕組みから学べる

                                                                サーバー入門、非同期処理入門、epoll 入門
                                                              • Redisとキャッシュについて理解を深めてみた。 - Qiita

                                                                業務でキャッシュに関わる部分を見る機会があり、せっかくなのでキャッシュについて理解を深めてみました。そのまとめです。 Redisとは Redisは「REmote DIctionary Server」の略です。githubのリポジトリ→redisのリポジトリ (最近開発者がRedisの開発から退く意向を示す投稿をしていました。そのため、Redisのリポジトリが作者の個人リポジトリからredis-ioリポジトリに移っています。) Redisはin-memory databaseであるが故に高速アクセスが可能であり、client/serverモデルを採用しているが故に複数のクライアントからアクセスすることが可能です。またreplicationがサポートされているなどscalableであるという特徴も持っています。 本投稿では以下の2点を見ていきます。 in-memory database rem

                                                                  Redisとキャッシュについて理解を深めてみた。 - Qiita
                                                                • C10K問題 - Wikipedia

                                                                  この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "C10K問題" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2019年9月) C10K問題(英語: C10K problem)とは、Apache HTTP ServerなどのWebサーバソフトウェアとクライアントの通信において、クライアントが約1万台に達すると、Webサーバーのハードウェア性能に余裕があるにもかかわらず、レスポンス性能が大きく下がる問題である。 原因[編集] この現象の原因は主に2019年現在も広く用いられているApache HTTP Server(以下「Apache」)の駆動方式にある。 Apacheはクライアントの接

                                                                  • ちょっと先のプログラミング言語を予想する

                                                                    先日κeen@blackenedgoldさんのこちらのブログを読んで、 自分もプログラミング言語について考えていることを書いてみたいと思ったので久しぶりに更新します。 https://keens.github.io/blog/2021/01/04/future_of_proguramming_languages/ 半年ほど前からプログラミング言語を作ってみたいと思っていて、 言語デザインを考える過程で色々な言語を触っているので、それを元にプログラミング言語のごく近い未来を予測してみたいと思います。 基本的には元記事の内容に概ね賛成です。 あまり型レベルプログラミングを突き詰めてしまうと抽象度が増して初心者にとっての参入障壁になってしまわないか心配ですが それもうまく隠蔽されながら進化していくんだと思います。 次にこんな言語がくるぞ!というよりもこうあってほしいという願望に近いので、そのつも

                                                                      ちょっと先のプログラミング言語を予想する
                                                                    • Tornadoでマルチスレッド・マルチプロセス・非同期I/O

                                                                      機械学習を組み込んだWebアプリを開発するにあたり、重い処理を行っている間もリクエストを受けられるノンブロッキングなアプリケーションを構築する方法について調査した。scikit-learnなどの便利なライブラリを使いたいために言語はPythonを選択し、Webフレームワークは軽量で高速なTornadoを使うことにした。Tornadoのドキュメントを読んだところ3 (+1) 通りの方法があると分かったので、それらを実装して性能を評価した。 # coding: utf-8 from tornado import web, ioloop, httpserver, httpclient from concurrent.futures import ProcessPoolExecutor def heavy_func(arg): count = 0 for i in range(100000000)

                                                                        Tornadoでマルチスレッド・マルチプロセス・非同期I/O
                                                                      • リアルタイムなwebアプリを実現する方法(ポーリング、Comet、Server Sent Events、WebSocket)

                                                                        リアルタイムなwebアプリを実現する方法(ポーリング、Comet、Server Sent Events、WebSocket)2016/1/17 人気記事 リアルタイムなwebアプリを実現する方法について、サンプルコードを作成しながら検証する。 注意点 この記事で記載している実現方法はいずれもHTTPレベルの仕組みで実現されるものであり、サンプルコードはあくまで実装例です。 サンプルコードは動作を確認するのが目的であり、プロダクション適用レベルの考慮は一切していません。 実現方法の一覧ポーリング 画面をフルでレンダリングするパターンAjaxでJSONやXMLでデータを取得するパターンComet(ロングポーリング) Server Sent Events WebSocket 詳細の理解は、以下の資料を参考にしてください。 参考 サーバPUSHざっくりまとめ サンプルコードポーリング(Ajax)リ

                                                                          リアルタイムなwebアプリを実現する方法(ポーリング、Comet、Server Sent Events、WebSocket)
                                                                        • Promiseは何時呼ばれるのか? - Qiita

                                                                          Promiseは何時呼ばれるのか? 使う分には今まであまり意識してこなかったのですが、async/awaitを呼ぶことで処理がブロッキングされるのではないかというのを懸念していたのと、そもそもどのタイミングでPromiseのcallbackがされるのか気になったので今更ですが調べてみました。 Promiseが呼ばれる仕組みについては先にEventLoopとmicrotaskについて知る必要があります。 先に結論から書くと以下の感じです。 PromiseはEventLoop内のmicrotaskキューでFIFO実行される。 Timer系の処理(setImmediateやsetTimeout)はmicrotaskが全て実行された後に実行される。(つまり、setTimeout(fn, 0)はmicrotaskを全て実行した後にfnを実行するという意味) async/awaitはPromiseの箇

                                                                            Promiseは何時呼ばれるのか? - Qiita
                                                                          • JavaScriptをサーバサイドで動かせる!Node.jsの魅力とは?

                                                                            HOME制作JavaScriptをサーバサイドで動かせる!Node.jsの魅力とは? JavaScriptをサーバサイドで動かせる!Node.jsの魅力とは? みなさん、Webアプリケーションを制作する時、サーバサイドはどの言語で書いていますか? PHP、Rubyなど様々なプログラミング言語がありますが、実は通常クライアントサイドで用いられるJavaScriptもサーバサイドで動かすことができるのです。 それが、JavaScriptのライブラリであるNode.js(ノードジェイエス)です。 このNode.jsは、様々なところで使用されているものになります。 この記事では、Node.jsとは一体何なのか、Node.jsの魅力は何か、Node.jsのメリット及びデメリットについて解説していきます。 クライアントサイドとサーバサイド そもそも、Webアプリケーションを作る際に使われるプログラミン

                                                                              JavaScriptをサーバサイドで動かせる!Node.jsの魅力とは?
                                                                            • Nginx+Expressパフォーマンス計測 - Qiita

                                                                              この記事は リンク情報システム の「2020新春アドベントカレンダー TechConnect!」のリレー記事です。 TechConnect! は勝手に始めるアドベントカレンダーとして、engineer.hanzomon という勝手に作ったグループによってリレーされます。 (リンク情報システムのFacebookはこちらから) はじめに 弊社で多く扱う業務系システムではミドルウェアは知名度と実績のある構成が好まれます。(多分) WebサーバでいうとApacheの方が扱いが多くなりがちです。(多分) Nginxを採用したいんですが、調べても説得に使えるような詳細な情報が意外と見つからない 「Nginxは速いらしいです!C10K問題にも対応可能らしいです!」 これだけで採用OKされると、さすがに別の面で心配になってしまいます。 「NginxはApacheと比較すると実測でスループットが約50%高い

                                                                                Nginx+Expressパフォーマンス計測 - Qiita
                                                                              • builderscon 2019-08-30(1日目) アウトラインメモ

                                                                                builderscon 2019-08-30に参加してきたのでアウトラインメモ。 ブロックチェーン時代の認証 - builderscon tokyo 2019 スライド: ブロックチェーン時代の認証 / Authentication in the Blockchain Era - Speaker Deck ブロックチェーンのゲーム開発してる ブロックチェーンとウェブ認証 ガードナーによるとブロックチェーンは幻滅期に入った ブロックチェーンゲーム ブロックチェーン技術を使ったゲーム ブロックチェーン上にアイテムやキャラクタの所有情報を記録する デジタルアセットが運営からの貸与じゃなくて、ユーザーの所有になる 通過 量を扱う単位 デジタルアセット モノに近い概念をデジタル上に再現している mch.gg ブロックチェーンゲーム MyCryptoHeroes ブロックチェーンのEthereumを利

                                                                                  builderscon 2019-08-30(1日目) アウトラインメモ
                                                                                • Node.jsを理解する (libuv)

                                                                                  はじめに 最近Node.jsデザインパターンという本を購入して読み理解した内容について社内LTで発表したのでその内容を軽く纏めようと思い、この記事を書きます。 内容としては一章の内容をまとめ、さらに深ぼったといった感じです。 前提 少し不確定な部分があり、誤っている可能性がある箇所はコメントを書いています。 ご存じの方いましたらご教授いただきたいです。 Nodeがなぜこのような思想なのかの話はしません、具体的にはLAMPやc10k問題の話はしません。 他の参照した記事ではイベントループと紐づいているイベントキューにおけるlibuvが提供している部分をマクロタスク、Node.jsが提供している部分をマイクロタスクと書いている記事もありますが、 この記事では hiroppyさんの記事 と同じようにlibuvが提供している部分をフェーズと書いています。 Node.js とは 公式より Node.

                                                                                    Node.jsを理解する (libuv)