問題タブ [base-address]

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 に答える
2965 参照

.net - .NET assemblies and DLL rebasing

According to this article rebasing is not necessary for .NET assemblies due to JIT compilation of the code. The article states:

"JIT-compiled code does not have a rebasing problem since the addresses are generated at run time based on where the code is placed in memory. Also, MSIL is rarely affected by base address misses since MSIL references are token-based, rather than address-based. Thus when the JIT compiler is used, the system is resilient to base address collisions."

However, I have noticed that VS2008 assigns the default 0x0400000 base address to all assemblies (project properties > build > advanced) and if I do a listdlls /r for my process all my .NET assemblies are in fact rebased per default.

If I assign addresses myself, no rebasing is done.

My question is: What is rebased in this case and why?

EDIT: I should add that I am not talking about NGen'ed assemblies.

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

wcf - 複数のWCFサービスで共通のBaseAddressを共有できますか?

いくつかのWCFサービスを含むアセンブリがあり、それぞれに独自の契約があります。それはすべてうまく機能します。サービスのapp.configのサービス構成は次のようになります。

より大きなプロジェクトを念頭に置いており、より多くの契約があるので、異なるサービス契約間でBaseAddressを共有する方法が必要です。
これが異なるコントラクトとエンドポイントを持つ1つのサービスである場合、オモンのベースアドレスを設定できますが、複数のサービスに共通のベースアドレスを設定するにはどうすればよいですか?

もちろん、私はクライアントのために似たようなものが必要です。

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

.net - DLL、メモリマッピング、ベースアドレス、メモリ使用量、および.NET?

実際の質問から始める前に、ここで詳細の一部が間違っている可能性があるとだけ言っておきます。もしそうなら、それらだけでなく、あるいは私の質問に答える代わりに、私を逮捕してください。

私の質問は、基本的にDLLと.NETについてです。かなりのメモリを使用しているアプリケーションがあり、特に問題が主にクライアントのコンピュータで発生している場合に、これを正しく測定する方法を見つけようとしています。

私を驚かせたのは、ORMコードが生成されたかなり大きな.NETアセンブリがあることです。

一意のベースアドレスを持つアンマネージ(Win32)DLLを使用していた場合、同じマシン上の複数の同時プロセスがDLLを物理メモリに1回ロードし、すべてのアプリケーションの仮想メモリにマップするだけでした。したがって、物理メモリはこのDLLに1回使用されます。

問題は、.NETアセンブリで何が起こるかです。このDLLにはILが含まれており、この部分はアプリケーション間で共有される可能性がありますが、このILから生じるJITtedコードはどうでしょうか。共有されていますか?そうでない場合、これが実際に問題に寄与しているかどうかを把握するためにどのように測定しますか?(はい、私は知っています、それは貢献するでしょう、しかしそれが最大の問題になるまで私はこれに多くの時間を費やすつもりはありません)。

また、ソリューション内のすべての.NETアセンブリのベースアドレスを確認していないことも知っていますが、.NETアセンブリで確認する必要がありますか?もしそうなら、これらのアドレスを決定する方法について利用可能ないくつかのガイドラインはありますか?

これが大きな問題ではない、またはまったく問題ではないことが判明したとしても、この領域への洞察は大歓迎です。


編集:ちょうどこの質問を見つけました:私の質問に部分的に答える.NETアセンブリとDLLリベースですが、JITtedコードがこれらすべてにどのように影響するかを知りたいです。

その質問と受け入れられた回答から、JITtedコードはヒープに配置されているように見えます。つまり、各プロセスは共有バイナリアセンブリイメージをロードし、独自のメモリスペース内にコードのプライベートJITtedコピーを生成します。

これを測定する方法はありますか?これで大量のコードが生成されることが判明した場合は、生成されたコードをさらに調べて、調整する必要があるかどうかを判断する必要があります。


編集:ここに質問の短いリストを追加しました:

  1. .NETアセンブリのベースアドレスが一意で重複しないようにして、JITtingのためにILコードを取り出すために主に使用されるdllのリベースを回避することに意味はありますか?
  2. これが本当に問題であるかどうかを判断するために、JITtedコードに使用されているメモリの量をどのように測定できますか?

ここでの@BrianRasmussen の回答は、予想どおり、JITtingがJITtedコードのプロセスごとのコピーを生成することを示していますが、アセンブリのリベースは、メモリ使用量の削減に関して実際に効果があります。私は彼が言及しているWinDbg+SoSツールを掘り下げる必要があります。これは私がしばらくの間リストに載せていたものですが、今ではもう延期できないと思います:)


編集:私が主題に関して見つけたいくつかのリンク:

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

wcf - WCF サービスが web.config の baseAddress 設定に応答しないのはなぜですか?

Anthony Steele によるこのブログ投稿でプロジェクトを再作成することにより、WCF で RESTful サービスを構築する方法を学ぼうとしています。彼は構成で次の XML を使用して、サービスのエンドポイントをセットアップします。

しかし、ASP.NET 3.5 Web サイトの web.config で同じことをしようとすると、サービスに移動できません。私が使用しているXMLは次のとおりです。

この構成により、http://localhost:49268/TestREST/webapi/services/greeterに移動してサービスを確認できると思います。リソースが見つからないというメッセージが表示されるだけです。何か不足していますか?

編集:私の問題の一部は、バインディングが wHttpBinding だったことです。webHttpBinding を使用すると、サービスを正しく使用できるようになりました。ただし、baseAddress 構成セクションはまだ効果がありません。

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

linux-device-driver - inb() および outb() 経由で通信するためのデバイス ベース アドレスの検索

ドライブに関する特定の情報を見つけることができるように、inb()、inw()、outb()、および outw() コマンドを使用してディスク ドライブと通信しようとしています。ただし、これらのコマンドを使用するには、デバイスの正しい I/O ポートが必要です。正しい I/O ポートがあれば、探している情報を簡単に見つけることができますが、Linux でデバイスの I/O ポートのベース アドレスを見つける方法がわかりません。

DOS では、Hdat2 を使用してデバイスのベース アドレスを見つけることができますが、Linux でアドレスを見つけようとしています。Linux でどのデバイスがどの I/O ポートにマップされているかを調べる方法はありますか?

/proc には ioports というファイルがあり、いくつかの情報が含まれていますが、この情報を特定のデバイスに関連付ける方法はわかりません。

どんな助けでも大歓迎です。ありがとう!

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

c# - WCFの複数のベースアドレスと複数のエンドポイント

TCPとHTTPの2つのバインディングを使用しています。両方のバインディングに関するmexデータを提供したいと思います。私が欲しいのは、mexHttpBindingがHTTPサービスのみを公開し、mexTcpBindingがTCPサービスのみを公開することです。または、HTTPバインディングからのみ統計サービスにアクセスし、TCPからeventLoggingサービスにアクセスすることは可能ですか?

例えば:

  • TCPの場合、私は

    /li>
  • HTTPの場合

    /li>

(WCFテストクライアントを使用して)いずれかのベースアドレスに接続すると、すべてのサービスにアクセスできますか?net.tcp:// localhost:9001 / ABCに接続するときのように、HTTPバインディングで提供されるサービスを使用できます。どうしてこんなことに?

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

c++ - EXEまたはDLLイメージのベースアドレス

C ++ /windowsでexe/DLLイメージのベースアドレスを取得する方法はありますか?ありがとう :)

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

php - php:Mod の書き直しにより、ベース アドレスを見つけるのに苦労しています。助けが必要です

Mod_rewrite は初めてですが、問題はすべての ajax と php を台無しにすることです

javascript の例の現在の場所を取得するために、windows.location オブジェクトを使用します。

mod_rewriteを使用して以来、これが機能しないという問題。私の.htaccess

誰かがこれを修正する方法に私を導くことができますか. ? また、すべての imgs と css/.js を積むことで同じ問題に直面していますが、.htaccess に条件を記述して .php のみをリダイレクトできると聞きました。

ajax 呼び出しのベース アドレスを見つける方法と、php のベース アドレスを見つける他の方法が必要です。

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

.net - WCFクライアント構成-複数のサービスを別のホストにリダイレクトします

現在、クライアントのweb.configには次のような複数のサービスがあります。

そしてかなり多く

このweb.configを使用すると、すべてのエンドポイントアドレスの「ホスト名」を置き換える必要があるため、ホスティング環境の切り替えが困難になり、エラーが発生しやすくなります。

どういうわけか、環境アプリの設定など、ホストを指定できる場所に追加して、エンドポイントを次のように解決したいと思います。http://{hostA}/ServiceX.svc

プログラムで魔法をかける必要がありますか、それとも構成だけでこれを行うことができますか?

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

c# - 正しいベースアドレスを見つける

正しいものを取得する私のバージョンbaseaddressが間違っていることに気付きました

しかし、それbaseaddressは間違っています

MSDNも調べましたが、このコードは非常に奇妙で、無限ループが発生します。

例が見つからないので、助けていただければ幸いです。

編集 :

ここでは、デスクトップのイメージを作成しました。私は本当に混乱しています。誰かが私がどこで間違いを犯したか知っているかもしれません。 http://i.stack.imgur.com/50lva.jpg