タグ

2023年10月15日のブックマーク (11件)

  • Vista以降では安易にスレッドを作るな!? – Life is Real.

    ■2021年8月3日 gistにコードを移すとき、コピペした時に文字化けしてたところとか io_completion_port_xp.cpp/io_completion_port_vista.cppを諸々修正 LinuxやBSDなどのUNIX互換のOSと違って、Windowsではスレッドを起こすのは普通に行われてることだと思います。で、スレッドを起こすには、CreateThread API もしくは、Cランタイムライブラリの_beginthreadex関数を使うことになります。 が、一方でスレッドを生成するのではなく、スレッドプールを利用する、というケースもあり、パフォーマンス的な事を考えれば、むしろこちらの方が多いかもしれません。 Windows 2000/XPなどのNT5.x系では、QueueUserWorkItem APIというスレッドプールに関するAPIが使えます。。。けど、はっき

    Vista以降では安易にスレッドを作るな!? – Life is Real.
  • Windowsのソケット通信関連技術(Winsock、IOCP、スレッドプールI/O、RIO(Registered I/O)) ※膨大なため随時追記中 - Qiita

    Windowsのソケット通信関連技術(Winsock、IOCP、スレッドプールI/O、RIO(Registered I/O)) ※膨大なため随時追記中Win32API非同期RioスレッドプールIOCP 1. はじめに 仕事でソケット通信を行うサーバーの性能テストを行うことになって、Cでプログラムを書くことになりました。 必要なのはクライアントですが、動作確認のため、サーバーも作成しています。 ひとまずWindows用で、できればLinuxでもそのうち動かせるようにという希望のため、機種依存部は全てラップしました。 昔ながらの同期のソケット通信が希望されていましたが、性能テストの対象がかなり性能の高いサーバーで、クライアントPCを複数台使っても性能が足りないかもしれないので、Windowsのさまざまな非同期処理を加えました。これらはWindows専用で作成しています。 非同期関連のソケット技

    Windowsのソケット通信関連技術(Winsock、IOCP、スレッドプールI/O、RIO(Registered I/O)) ※膨大なため随時追記中 - Qiita
  • 【解説編】ウインドウを作らずにOpenGLでレンダリングする方法

    とある事情で、OpenGLを使ったオフスクリーンレンダリング(ウインドウではなくメモリ上への描画)の方法を調べていたのですが、OpenGLに関するネット上のサンプルはfreeglutなどの補助ライブラリを使う方法ばかり…。freeglutは初期化の時点でウインドウの作成が必須になるので、いわゆる「オンスクリーンレンダリング」となってしまい目的に合いません。まぁ、グラフィックライブラリだからウインドウがある前提なのは当たり前なのですが…(´・ω・)あれやこれやと苦労した結果、ようやくウインドウを作らずにレンダリングする方法が分... 記事の中ではコードの解説は一切していなかったので、あらためて以下に解説をまとめたいと思います。あくまでも私自身の理解を書き連ねているだけなので、間違いなどあるかもしれません。もし間違いにお気づきの方はコメントいただけると嬉しいです。 OpenGLのレンダリングに

    【解説編】ウインドウを作らずにOpenGLでレンダリングする方法
  • Your Own Quadrics in OpenGL MFC

  • MFCでの基本的な描画処理(GDI)

    MFCでGUIの開発を行っている際に「図形の描画をしたい」というタイミングがたまにあります。 図形の描画はプログラミング言語やフレームワークの種類によって書き方が異なるため、文法や構文とは違い他の言語を触っていたからといって「なんとなく書ける」ということはなかなかありません。 MFCにおける描画処理は「GDI」を使用したものと「GDI+」を使用したものとがありますが、この記事ではGDIを使用した基的な描画処理の方法について解説します。 MFCにおける描画処理を記述する場所 MFCにおける描画処理は基的には「OnPaint」「DrawItem」などの描画イベントから呼び出される処理の中に記述する必要があります。 描画処理を学び始めたばかりの型の中には、「ボタンを押したタイミングで描画」「タイマーで特定の周期で描画」といったように、描画イベント外で描画処理を記述してしまう方がいます。 描画

    MFCでの基本的な描画処理(GDI)
  • Wiresharkでの”Bad TCP”エラー ~TCP retransmission の種類や Dup ACK、Out-Of-Order 等を解説~ | SEの道標

    Wireshark でしばしば観測される TCP エラー (Wireshark の『Bad TCP』のフィルターで引っ掛かるもの) について、それぞれの意味と原因をまとめます。 [TCP Previous segment not captured]これは『パケットの Seq# (シーケンス番号) を見る限り、このパケットよりも一つ前に来あるべきパケットが Wireshark からは見られない』ときに表示されます。 これがマークされる原因はおそらく以下 2 つのどちらかです。 一つ前のパケットを取りこぼしているキャプチャ開始前に受信している 1 については実際にパケットロスしている可能性もありますが、Wireshark が取りこぼしているだけ (実際のクライアントアプリ⇔サーバアプリ間では通信は取りこぼしていない) のケースもあり得ます。 [TCP ACKed unseen segment

    Wiresharkでの”Bad TCP”エラー ~TCP retransmission の種類や Dup ACK、Out-Of-Order 等を解説~ | SEの道標
  • tcコマンドの使い方 - hana_shinのLinux技術ブログ

    ランキング参加中Linux 1 tcコマンドとは? 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 qdiscの種類 4 クラスレスqdiscの設定、削除 4.1 設定、削除の書式 4.2 pfifoの設定、削除の方法 4.3 sfqの設定、削除の方法 4.4 tbfの設定、削除の方法 4.5 netemの設定、削除の方法 4.5.1 一定の遅延を設定する方法(delay) 4.5.2 遅延にばらつきを設定する方法(delay) 4.5.3 廃棄の設定方法(loss) 5 クラスフルqdiscの設定、削除 5.1 prioの設定、削除の方法 5.1.1 設定方法 5.2.2 削除方法 5.2 htbの設定、削除の方法 5.2.1 設定方法 5.2.2 削除方法 6 統計情報を確認する方法 7 実験 7.1 遅延 7.2 廃棄 8 その他 Z 参考情報 1 tcコマンドとは? カー

    tcコマンドの使い方 - hana_shinのLinux技術ブログ
  • 新型コロナ後遺症“血液中物質に特定の変化”米研究チーム発表 | NHK

    新型コロナウイルスの感染後、症状が長引く人では、ストレス反応に関わるホルモンが減少するなど、血液中の物質に特定の変化がみられるとする研究成果を、アメリカの研究チームが発表しました。研究チームは新型コロナの「後遺症」の正確な診断や治療法の開発に応用できるとしています。 この研究は、アメリカ イエール大学の岩崎明子教授らの研究チームが、科学雑誌「ネイチャー」で発表しました。 研究チームは、 ▽新型コロナに感染したあと、けん怠感や息苦しさなど、何らかの症状が長引く「後遺症」が1年以上ある人と ▽感染後、後遺症がない人 ▽感染しなかった人など、 合わせて268人の血液成分を分析しました。 その結果、後遺症がある人たちでは、血液中にあるB細胞やT細胞と呼ばれる特定の免疫細胞が増加していたほか、体内で潜伏していたヘルペスウイルスが活性化するなどの変化が確認されたということです。 さらに、後遺症がある人

    新型コロナ後遺症“血液中物質に特定の変化”米研究チーム発表 | NHK
  • BrowserStack:テスト自動化有料ツールの決定版

    特によく使われる上二つのサービスでは”Webアプリケーションのテスト環境"を提供しており、インターネットに公開されたWebアプリケーション、開発中のローカルのWebアプリケーションのテスト環境が揃っています。 テスト環境 = テスト用アプリケーションがデプロイされ、ホストされている環境 テスト実行環境 = 上記テスト環境にアクセスし、テストを実施するためのデバイス・ブラウザ・OSを含む環境 BrowserStackはクラウド上で後者の「テスト実行環境」を提供しています。 BrowserStack Live (手動テスト) BrowserStackにホストされている様々なデバイスを利用し、マニュアルテストすることが可能です。画像ではiPhone13のデバイスを立ち上げ、Webのダッシュボード上で操作を行っている様子です。シミュレータではなく、実機デバイスをブラウザ上から操作できます。 Bro

    BrowserStack:テスト自動化有料ツールの決定版
  • 24時間365日動き続けるデータシステムの設計手法 : 「データ指向アプリケーションデザイン」実践編

    「データ指向アプリケーションデザイン」をベースに、24時間365日動き続けるデータシステムを実装する際に必要となる技術や考え方を紹介します。 この資料は、2023大阪大学大学院 情報科学科 マルテメディア工学特別講義で使われた資料を一般用に修正して公開しています。 参考: 「30分でわか…

    24時間365日動き続けるデータシステムの設計手法 : 「データ指向アプリケーションデザイン」実践編
  • 並列処理がとても苦手なPythonはプロセスを分けよう コードを書く時に意識したい2つのTipsと2つの落とし穴

    GoPythonKotlinRustTypeScript の5つの言語について「並列処理、並行処理の手法」というテーマに絞り解説する「並列処理をGo/Rust/Kotlin/Python/JSで解説!思想の違いを体感しよう」。Python編では橘氏が登壇。Pythonで並列処理を行う際の設計方針と、実装上の癖について話します。 西川氏の自己紹介 西川大亮氏(以下、西川):ここからはPython編の「ちょっとしたデータ分析の並列化」というタイトルで、西川から話します。 GOに勤める西川です。今やっているのは、タクシーやハイヤーの営業支援。「お客さんを乗っけていない時間、どこを走ったらいいの?」とか「どういうところで待っていたら注文来やすいの?」というところのナビをする、「お客様探索ナビ」というサービスのいろいろなことをしています。小さなサービスなのでいろいろやっている感じですね。 P

    並列処理がとても苦手なPythonはプロセスを分けよう コードを書く時に意識したい2つのTipsと2つの落とし穴