問題タブ [real-time]

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 投票する
9 に答える
2716 参照

java - Java リアルタイム パフォーマンス

私は、画像の非常に高度な操作を必要とする Java プロジェクトに取り組んでいます。実際、私は OpenCV を使用してほとんどの操作を行っており、JNI を使用して、必要な OpenCV 関数をラップしています。私は OpenCV がもたらすパフォーマンスに非常に満足しています。OpenCV コードを書いた人々は、コードに対して大きな功績を残しました。Java開発者が書いたコードで私が経験したこととは対照的です。

私は自分のプログラミング言語の選択について楽観的に始めました。プロジェクトの最初の作業反復は問題なく動作しましたが、そのパフォーマンスはリアルタイムにはほど遠いものです (2 秒あたり約 1 フレームを取得)。MY コードのいくつかの最適化を行い、それは大いに役立ちました。フレーム レートを 1 秒あたり約 10 ~ 20 フレームまで上げることができました。これは素晴らしいことですが、さらに最適化を行うには、Java コードを書き直して同じことを行う必要があることがわかりました。 -20 倍の効率。

Java の開発者がパフォーマンスにほとんど注意を払っていないことに愕然とします。特にメディア関連のクラスを作成する場合はそうです。OpenJDK をダウンロードし、使用している機能を調べています。たとえば、Raster クラスの下に getPixels(...) という関数があり、画像のピクセルを取得します。私は、この関数がソース コード内で高度に最適化された関数であり、パフォーマンスをさらに最適化するために System.arrayCopy を複数回呼び出すことを期待していました。代わりに、私が見つけたのは非常に「上品な」コードで、1行でできることを達成するために、5〜6の異なるクラスと10〜20の異なるメソッドを呼び出しています。

上記のコードは、画像をグレースケールに変換し、約 1 ~ 10 ミリ秒で浮動ピクセル データを取得します。Java 組み込み関数で同じことをしたい場合、グレースケールへの変換自体に 200 ~ 300 ミリ秒かかり、次に float ピクセルを取得するのに約 50 ~ 100 ミリ秒かかります。これは、リアルタイムのパフォーマンスには受け入れられません。速度を上げるために注意してください。私は、Java 開発者が敬遠するビット単位の演算子を多用しています。

一般的なケースを処理する必要があることは理解していますが、それでも、少なくとも最適化のオプションを提供したり、少なくともこのコードの実行速度がどれほど遅いかを警告したりすることはできません。

私の質問は、開発のこの後半の時点で (私はすでに最初のイテレーションを持っていますが、リアルタイムでより多くのパフォーマンスを発揮する 2 番目のイテレーションに取り組んでいるわけではありません)、弾丸を噛んで C/C++ に切り替える必要があります。もっと調整するか、Java に固執して、スピードアップのために既に実装されている Java コードを書き直す必要がないように、物事がよりリアルタイムに適したものになることを願っています。

Java がいかに「上品」で遅いかということに、私は本当にうんざりし始めています。そこにあるクラスの量は、やり過ぎのようです。

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

real-time - シンプルな Web チャット、複数のフロント

この問題の解決策を探しています:

複数のフロントを持つ Web サイト用に、ほぼリアルタイムのような単純な Web チャットを作成する必要があります。Web チャットには、ニックネームの時間とメッセージだけで、アイコンは必要ありません。

ウェブサイトは .net で動作します。

チャットを希望するユーザーは、システムにログインする必要があります。ユーザーの認証は既に処理されています。それは問題ではなく、他の人は会話を見ることしかできません。

複数のフロントで実行されているため、DBを使用するか、このWSに毎秒リクエストを行うWSなどを使用する必要があると考えていました。ここから私は私が失われたことを知りません...私は、ajaxがwebサービスに受信したlastmassageのIDをポストバックする必要があり、Webサービスが最後に受信したメッセージ以降のすべての最新の投稿をユーザーに送信することを考えていました。これは、リアルタイム チャットのように見えるように毎秒 1 回実行する必要があり、サーバー負荷が非常に高くなります。

皆さんはどう思いますか?と提案任意のアイデア? と実用的なソリューション?

thnx rm

0 投票する
3 に答える
4033 参照

c# - C# チャート作成 - Reasonble の大規模データ セットとリアルタイム

比較的大きなデータセットを処理でき、グラフのレンダリングと更新に関して適度にスケーラブルな、商用またはオープンソースの C# WinForms グラフ作成コンポーネントを探しています。表示されるデータ セットの数は約 30 です。各データ セットは 1 秒あたり 15 ~ 20 回更新されます。これには、折れ線グラフ コンポーネントが必要です。

0 投票する
3 に答える
570 参照

architecture - ゲーム開発におけるリアルタイムプロセス通信

システム コンポーネント (IE、レンダリング、物理、ロジック、入力、スクリプトなど) を異なるスレッドに分割するゲーム アーキテクチャを作成する場合、リアルタイム通信が必要な場合はどのように処理しますか?

たとえば、スクリプトで画面にボックスを描画する場合、レンダリング コンポーネントが「FrameDrawn」イベントを発行して、各フレーム描画の最後にボックスが画面の上に描画されるようにするのが理想的です。 . スクリプティング コンポーネントとレンダリング コンポーネントが互いに異なるスレッド上にある場合、これはどのように可能になるのでしょうか?

0 投票する
11 に答える
1487 参照

c# - リアルタイム データを 1000 ファイルに保存

1000 のトピックに関するリアルタイム データを受信するプログラムがあります。平均して 1 秒あたり 5000 件のメッセージを受信します。各メッセージは、トピックとメッセージ値の 2 つの文字列で構成されます。これらの文字列を、メッセージの到着時刻を示すタイムスタンプと共に保存したいと思います。

「Core 2」ハードウェアで 32 ビット Windows XP を使用し、C# でプログラミングしています。

このデータを 1000 ファイル (トピックごとに 1 つ) に保存したいと思います。多くの人がデータをデータベースに保存するように言いたがることは知っていますが、私はその道をたどりたくありません。

私はいくつかのアプローチを検討しました:

1) 1000 個のファイルを開き、データが到着したらそれぞれに書き込みます。これには2つの懸念があります。1000 個のファイルを同時に開くことができるかどうかはわかりません。また、これがディスクの断片化にどのような影響を与えるかもわかりません。

2) 1 つのファイルに書き込み、後でそれを処理して 1000 個のファイルを生成します。

3) 一日の終わりまですべてを RAM に保持してから、一度に 1 つのファイルに書き込みます。2 GB の制限を超えるには 64 ビットに移行する必要があるかもしれませんが、十分な RAM があればこれでうまくいくと思います。

この問題にどのように取り組みますか?

0 投票する
7 に答える
1065 参照

.net - .NET で全二重プログラミングを行うには?

Google Wave のデモを見た後、Web アプリケーションに「リアルタイム」機能を組み込むことを考えました。これにより、あるユーザーが別のユーザーが入力しているテキストをその場で見ることができるようになります...

フレームワークがスレッドを処理する方法に基づいて.NETに組み込まれたソフトリアルタイム機能に加えて...

他に必要なものはありますか?リアルタイム Web アプリのパターンやアーキテクチャのリファレンスはありますか? 私が読むべき何か?

ありがとう!

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

.net - SQL Compact から SQL Express へのリアルタイム マージ/同期

現在、リアルタイム データをキャプチャするためのデータベースとして SQL Compact Edition を使用しているアプリケーションがあります。一部のユーザーは、このデータがアプリケーションによってキャプチャされている間に、このデータに対してクエリを実行してレポートを作成する独自のアプリケーションを作成したいと考えています。ただし、SQL Compact エディションはアプリケーションでインプロセスで実行されるため、外部プロセスからの接続は許可されません。

このデータを、ユーザーが提供する外部データベース サービス (SQL Express または標準 SQL Server) にリアルタイムでレプリケートするアプローチを使用することを検討しています。アプリケーションが SQL への書き込みを続けている間、クエリ/レポートに使用できます。コンパクト。

これに対する最善のアプローチに関する推奨事項はありますか? 同期フレームワークについて少し読んだことがありますが、(比較的)ほぼリアルタイムで同期する必要があるのに対し、バッチ同期をより対象としているようです。

他の人が同様のシナリオに遭遇したかどうか、また彼らがこれにどのように対処したかを知りたい. どんな提案でも大歓迎です。

0 投票する
4 に答える
784 参照

.net - 推奨される .Net ソフト リアルタイム

主に.Net 3.5/4 Winforms(おそらくWPF)でのソフト(ハードも)リアルタイムアプリケーションに関する包括的な情報を取得することに興味があります。この件に関する Google の結果は非常に貧弱です - 並列処理に関するいくつかの質問のみ...問題は、たとえば、医療機器用のリアルタイムの患者の健康監視クライアントをどのように作成できるかということです。またはリアルタイムの株式データを使用したブローカー アプリケーションですか? または電車のナビゲーションシステム?またはドアの開閉を担当するハウスオートメーションソフトウェア?etc…ということで、こういうリアルタイムアプリがターゲットです。

これまでのところ、Windows での並行プログラミング以外の書籍は見つかりませんでした。

前もって感謝します

0 投票する
4 に答える
3132 参照

timer - Windows CE で 100 マイクロ秒未満の正確なスリープ

Windows CE で 100 マイクロ秒未満の精度でスリープすることは可能ですか? ジッタが少ないほど良いです。理想的には、1 桁のマイクロ秒の応答時間が必要です。

私たちが本当に必要としているのは、ジッターが非常に低い 5 ミリ秒のタイマーです。そのため、サイクルは徐々にドリフトします。

これが不可能な場合は、その情報も非常に役立ちます。

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

vb.net - 必ずしも CR/LF を使用しないプロセスの標準出力を監視する

私のアプリケーションは、定期的に process.start でコンソール プログラムを開始します。プログラムの出力を「リアルタイム」で監視する必要があります。

たとえば、プログラムは次のテキストをコンソールに書き込みます。

約 1 秒ごとに新しいドットが表示され、プログラムがまだ処理中であることをユーザーに知らせます。ただし、... プログラムが CR/LF を出力するまで、プログラムの標準出力を取得できません (実行中)。

出力をリアルタイムで取得するにはどうすればよいでしょうか?たとえば、VB.NET のデータベースにパイプするなどです。