問題タブ [interix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1287 参照

c++ - Visual Studio オブジェクト ファイルを GCC 形式に変換できるツールはありますか?

Interix を使用して Windows で C++ アプリケーションを構築しており、サード パーティのライセンス モジュールの機能を提供するために 3 つのオブジェクト ファイルをリンクする必要があります。サード パーティは、Visual Studio によってビルドされたオブジェクト ファイルを提供しています。GCCで使用するためにファイルを変換する方法はありますか? たとえば、名前マングリングを Visual Studio スタイルから GCC スタイルに変更した場合、それで十分でしょうか、それとも 2 つのオブジェクト ファイル形式の間に他に違いがありますか?

0 投票する
0 に答える
110 参照

c++ - Gentoo で Interix を使用して構築されたライブラリは、Gentoo 外でも動作しますか?

Gentoo Linux ディストリビューションには、Interix x86 Windows で動作するバージョンがあります。gcc を使用して C++ ライブラリをビルドした場合、これらのライブラリは Gentoo 内ではなく Interix 内でのみビルドされた実行可能ファイルで動作しますか? 実行時に Gentoo インストールに依存関係を作成する必要がありますか?それとも、そのようなライブラリの唯一の依存関係は Interix であり、コンパイル時に Interix を使用しても実行時依存関係は作成されませんか?

0 投票する
1 に答える
273 参照

c++ - UDP が比較的遅い速度でしかパケットを受け入れない理由を理解する方法は?

Windows XP で Interix を使用して、C++ Linux アプリケーションをより簡単に Windows XP に移植できるようにしています。私のアプリケーションは、ソケットを介して Linux を実行している近くのマシンとの間でパケットを送受信します。送信時のスループットは約 180 KB/秒で、受信時のスループットは約 525 KB/秒です。Linux で同じコードを実行すると、2,500 KB/秒近くになります。

180 KB/秒を超えるレートで送信しようとすると、パケットがドロップされて、レートがほぼそのレベルに戻ります。

送信時に 180 KB/秒よりも優れたスループットを得ることができると思いますが、ドロップされたパケットの原因を特定する方法がわかりません。

スループットの向上を期待して、この遅さを調査するにはどうすればよいでしょうか?

--その他の歴史--

上記の数値に到達するために、次の手順を実行してスループットを少し改善しました (Linux では違いはありませんでしたが、Interix ではスループットが向上しました)。

  • SO_RCVBUF と SO_SNDBUF を 256KB から 25MB に変更したところ、スループットが約 20% 向上しました
  • デバッグの代わりに最適化を実行したところ、スループットが約 15% 向上しました
  • stdout とログ ファイルに送信されるすべてのログ メッセージをオフにすると、スループットが 2 倍になりました。

そのため、Interix では CPU が制限要因のように見えますが、Linux ではそうではありません。さらに、ハイパーバイザーでホストされている仮想マシンで実行しています。Windows XP には 2 つのコアと 2 GB のメモリが割り当てられます。

プロファイラーは、2 つのコアの CPU が平均して 50% の使用率を決して超えないことを示していることに気付きました。これは、アプリケーションのインスタンスを 2 つ実行している場合でも発生しますが、両方のコアで 50% 前後で推移しています。おそらく、UDP ソケットから読み取る専用スレッドと UDP ソケットに書き込む専用スレッド (常に 1 つだけがアクティブ) を備えたマルチスレッドのアプリケーションは、Interix で適切にスケジュールされていないため、パケットが落ちる?