私はasp.net Webサイトを持っています。720x576 のサイズの画像で、毎秒可能な限り何度もタイマーを介して画像を更新しています。img コントロールが前のイメージのロードを完了した後、次の ashx ページ呼び出しを開始してイメージを取得することで、イメージをいつ更新できるかを制御します (これは「onload」イベントで行います)。
私の w3wp.exe は現在 140,000k で、130,000 に落ちています。これら 2 つの値の間で頻繁に上下します。
私は1人のユーザーでテストしており、安価なVPS共有ホスティング環境を使用しているため、質問は、ライブに移行するとw3wp.exeが制御不能になるか、サーバーパッケージをアップグレードすることで(主にRAMを増やす)維持するのに役立つかということですこれはすべてマルチユーザー環境で管理されていますか?
これは私のJavascriptです:
var timer3;
var intervalLive = 50;
function play2() {
if (timer3) window.clearTimeout(timer3);
swapImages3();
}
function setImageSrc3(src) {
_imgLive.src = src;
timer3 = window.setTimeout(swapImages3, intervalLive);
}
function swapImages3() {
var imgCached = new Image();
imgCached.onload = function () {
setImageSrc3(imgCached.src);
};
imgCached.onerror = function () {
setImageSrc3("http://a URL/images/ERROR.jpg");
};
imgCached.onload = function () {
setImageSrc3(imgCached.src);
};
imgCached.src = null;
imgCached.src = 'http://A URL/Cloud/LiveXP.ashx?id=' + new Date().getTime() + '&Alias=' + alias;
}
そして、これは私のashxページにあります:
public class Live : IHttpHandler {
DAL dal = new DAL();
static byte[] StandardError = Shared.ERROR;
public void ProcessRequest(HttpContext context)
{
byte[] data = null;
context.Response.ContentType = "image/jpg";
try
{
if (context.Request.QueryString["Alias"] != null)
{
data = Shared.GetFrame(context.Request.QueryString["Alias"].ToString());
context.Response.BinaryWrite(data);
}
}
catch (Exception ex)
{
data = StandardError;
dal.AddError(ex.ToString());
}
finally
{
context.Response.BinaryWrite(data);
}
}
public bool IsReusable {
get {
return true;
}
}
}
ありがとう