喫茶XRAYトップページ

[▲前のスレッド]

[11238] マルチスレッドでのメモリ確保返信 削除
2017/7/7 (金) 23:15:08 Sara
みなさんこんばんは。

書庫内などでファイルを直接読込めない状況で、画像をマルチスレッドで

読み出しサムネイル化などの処理をするにはどのようにメモリーを

確保して処理を行うのが良いでしょうか?(極力Synchronizeしないで)

ご教示いただけると幸いです。




[11239] Re:マルチスレッドでのメモリ確保返信 削除
2017/7/8 (土) 17:17:48 Mr.XRAY
▼ Saraさん

> 読み出しサムネイル化などの処理をするにはどのようにメモリーを

う〜ん,どんなアルゴリズムがいいんでしょうね.
以下のサンプルに,以前はシングルスレッドのサンプルを掲載していたのんですが,
結局シングルスレッドしても,マルチスレッドにしても,ある程度処理を
考えないと別スレッドで処理する意味がないので掲載をやめました.


[792_エクスプーラの縮小表示機能を使用した画像のサムネイル表示]
http://mrxray.on.coocan.jp/Delphi/plSamples/792_ExplThumbnail.htm

何かやり方があるのかも知れません.
データベース化とか...

https://www.teppi.com/fileblog/product/


[11240] Re2:マルチスレッドでのメモリ確保返信 削除
2017/7/8 (土) 19:28:55 Sara
▼ Mr.XRAYさん
> ▼ Saraさん
>
> > 読み出しサムネイル化などの処理をするにはどのようにメモリーを
>
> う〜ん,どんなアルゴリズムがいいんでしょうね.
> 以下のサンプルに,以前はシングルスレッドのサンプルを掲載していたのんですが,
> 結局シングルスレッドしても,マルチスレッドにしても,ある程度処理を
> 考えないと別スレッドで処理する意味がないので掲載をやめました.


マスターこんにちは。

通常ファイルのマルチスレッドでの読込、サムネイル化、保存は上手く動いています。

が、書庫内のファイルを処理しようとすると、Synchronize内で処理しないと

上手くサムネイル化できないのですよね・・・

・書庫から該当ファイルの読み出しを行いメモリ内に格納(GlobalAllocを使っている)

・上記で得たメモリハンドルをもとにサムネイル処理を行いDBに保存

・メモリハンドルをクリア(GlobalFree)

やはりGlobalAlloc〜GlobalFreeが良くないのかな?・・・というわけで、

今回の質問となっています。VirtualAllocとかHeapAllocとかを使うほうが良いのか、

GlobalAlloc GlobalFreeでもうまく使えばできるのか・・・

その辺の、情報はないものかと・・・

色々探してはみているものの、「これだ!」と言うのが見つからないのですよね。

どなたかご存知ないですか?

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82