HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
1001
捨てID共有メモリを使い続けるとCPU使用率が上がってくることを防ぐ方法0未解決


捨てID

リンク

2011/10/1(Sat) 04:07:49|NO.41862

MCShMem.hspは
上大さんの
http://prograpark.ninja-web.net/CollectField/index.html#MCShMem
にある
「簡単! プロセス間メモリ共有」です。


	#include "MCShMem.hsp"

	#define ctype MAD( %1, %2 )	MemAreaDbl( %1 * ObjDblNum + %2 )

	//共有メモリ
		ObjNum = 10 : ObjDblNum = 10

		MemAreaName = "TestDbl" : MemAreaSize = ObjDblNum * 8 * ObjNum : ShMem_new Mem, MemAreaName, MemAreaSize
		if ( ShMem_getCtorErr( Mem(0) ) ) : if ( ShMem_isAlreadyAlloced( Mem(0) ) ) : else : dialog "共有メモリ作成に失敗しました。", 1, "ShMem" : end 1

		ShMem_dupAll Mem(0), MemAreaDbl, 3

	//画面
		WindowSizeX = int( 400.0 * 1.75 ) : WindowSizeY = int( 400.0 * 1.75 )
		screen 0, WindowSizeX, WindowSizeY, 1, ( ginfo_dispx - WindowSizeX ) / 2, ( ginfo_dispy - WindowSizeY ) / 2
		font "", 12

*main
	await 15

	stick Key, 0
	if Key & 128 : end

	MAD( 1, 2 ) += 0.00001

	redraw 0
	color 255, 255, 255 : boxf : color
	repeat 4;ObjNum
		ObjNo = cnt
		repeat 8;ObjDblNum
			pos ObjNo * 50, cnt * 10 : mes MAD( ObjNo, cnt )
		loop
	loop
	redraw 1

	goto *main


ウィンドウの大きさや繰り返し処理の回数などで
CPU使用率が40〜60%くらいになるように負荷を調整してから
そのプログラムを実行し続けると、数10秒後くらいにCPU使用率が100%になります。
ウィンドウをドラッグしたりして、CPU使用率を100%にしたりしなかったりしても、なりやすいと思います。

同期していないことが原因なのでしょうか?
CPU使用率が上がってくることを防ぐ方法は何でしょうか?

HSPとは関係していなさそうな気もしますけど、よろしくお願いします。



この記事に返信する


ONION software Copyright 1997-2021(c) All rights reserved.