問題タブ [memory-mapping]
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.
java - ティカは一時ファイルを削除できませんでした
このアプリケーションでは、Apache Tika を使用してファイルを処理しています。ただし、一部のファイル (*.mov、*.mp4 など) は Tika が処理できず、対応する *.tmp ファイルをユーザーの一時フォルダーに残します。いくつかの調査の結果、既知のバグであることがわかりました: https://issues.apache.org/jira/browse/TIKA-1040?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
最後のコメントでは、ユーザーが回避策について話していますが、私にはうまくいきません:
上記のコードを使用しても、Temp フォルダーに一時ファイルが残ります。これに対する解決策は何ですか?
ios - メモリマップされた画像はiOSで可能ですか?
今日、私は大きなアイデアか、まったくばかげていると思った何かで目が覚めました。メモリの制限により、iOS ではそのような大きな画像を読み込むことができないため、約 5k ピクセルの正方形の巨大なスクロール可能な画像を使用する iOS アプリケーションを作成する必要があります。
については知っていますCATileLayer
が、小さなラグは私の要件に適合しません。そのため、ファイルをメモリマップしてそこから画像を読み取ることができると思いました。残念ながら動作しません。抜粋したコードは次のとおりです。
画像ビューに大きな画像を表示する必要があるまで、すべてが機能しているようです。私が覚えてUIImage
いるのは小さなラッパーでCGImage
あり、画像をレンダリングする必要があるまで画像をロードしません。
おそらく、からイメージを作成するシーケンスでNSData
、データが RAM にコピーされ、アプリがクラッシュするよりもメモリ警告がトリガーされます。そのため、 and s を
使用してさまざまな組み合わせを試しましたが、成功しませんでした。今、主なアイデアはおそらく完全に間違っていたと自分に言い聞かせています。誰かが私を正しい方向に向けることができますか?ImageIO
CGDataProvider
c - msync はアトミックですか?
mmap
/ msync
/を使用する場合munmap
、読み取り/書き込みはアトミックですか? (電源を切ったときにディスクが保留中の書き込みを終了すると仮定します)
linux - pci_iomap: クエリ
そのため、現在 ioremap_no_cache() を使用してカードの DoorBell 領域をマッピングしていますが、そのサイズは 4K のみです。しかし、(意図せずに)ドアベルを鳴らしたり、この 4K リージョン以降の場所に書き込んだりできることに気付きました。奇妙なことに、動作しているようです。どのように/なぜそれが機能しているのかを知りたいのですが、可能であれば、内部で ioremap_no_cache() が実際にどのように機能するかを深く理解していますか? コードの読み取りと man ページは、それほど役に立ちませんでした。最初の 4k リージョンの外側にあるこの余分な 4K リージョンは、デフォルトでは存在しないことに注意してください。
linux - Linux デバイス ファイルを複製する方法は?
私たちのシステムではmmap()
、/dev/mem
ファイルで を使用して、メモリ マップされたハードウェア デバイスにアクセスします。sudo
ただし、このデバイス ファイルを使用するには、物理デバイスに書き込むためにアプリケーションをスーパーユーザー モード ( ) で実行する必要があります。この制限を取り除く方法を探しています。
おそらく、デバイスファイルのアクセス許可を変更できます。ただし、これは推奨される解決策ではありません。
1 つの提案として、ハードウェア用の新しい完全なカーネル モード デバイス ドライバーを作成する代わりに、/dev/mem
デバイスを複製し、その書き込みアクセス許可を変更しmmap()
て、新しいデバイスで使用することができます。
いくつかのマニュアルページを読んで、mknod
コマンドを見つけました。そこで、それを使用して、ファイルemem
と同様の属性/dev/mem
(特に、デバイスのメジャー バージョンとマイナー バージョン) を持つ特別なファイル を作成しました。プログラムで新しいファイルを使用しても、duso
. そのため、その属性を完全な読み取り/書き込みアクセス許可に変更しましたが、sudo
.
次に、dev/mem
自身のパーミッションを 0777 に変更してみましたが、やはりダメでした。
これは、次の質問につながります。
sudo
特権の必要性は、mmap()
それがマップする特定のデバイスを使用することによるものですか?前者の場合、これを解消するにはどうすればよいですか?
/dev/mem
後者の場合、完全な権限で機能を複製するにはどうすればよいですか?
.net - 2 つの .NET プロセスが DLL メモリを共有できるのはいつですか?
同じクラス ライブラリを参照する 2 つの ASP.NET Web サイトがあります。現在、クラス ライブラリの 2 つのコピーを含むサイトを公開しています。これはメモリを浪費しますか?OS は、ファイルの 2 つのコピーが同じであることを認識しているので、DLL のコード セクションのメモリを共有できますか? それを GAC または別の共有場所にコピーして、1 つの物理ファイルだけにすると、マップされるメモリの合計が少なくなりますか?
ide - BIOS が制御を AHCI 拡張 ROM に転送するときのメモリ モデルは?
私が知っていたように、AHCI拡張ROMはIDP(インデックス/データペア)を使用してAHCIレジスタ(グローバルおよびポートレジスタ)にアクセスします。
ahci 仕様 v1.3 には次のように書かれています。
IDP メカニズムにより、ホスト ソフトウェアは間接 I/O アドレッシングを使用してすべての MMIO レジスタにアクセスできます。
したがって、ABAR が 1MB を超えていても、拡張 ROM はこの方法でリアル モードでMMIO にアクセスできます。
しかし、AHCI MMIO レジスタにアクセスする場合は、以下の展開で OK であることがわかりました。
上記で問題ない場合、メモリ モデルがリアル モードではないことを意味します (ビッグ リアル モードだと思います。つまり、4G でのアクセスは問題ありません)。
私たちの質問は、BIOS が制御を Expansion に転送するときのメモリ モデルが、最近ではビッグ リアル モードであるかどうかです (とにかく、リアル モードではありません)。はいの場合、いつでもメモリ操作を使用して AHCI の MMIO にアクセスできます...それは正しいですか?
- 以前 IDP を使っていたのは、当時は拡張に制御が移る時点でまだリアルモードだったからではないでしょうか。つまり、メモリ モデルはシステム BIOS に依存しますね。