1

私は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;
        }
    }   
}

ありがとう

4

0 に答える 0