Back to "ViewState kompression med BZip"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

ASP.NET Imported mostlylucidcouk Performance

ViewState kompression med BZip

Sunday, 29 February 2004

Bara en första titt på den här: , använder några klass som jag använde i ett annat projekt. (I' attribuera kompressionskod senare. Sharpziplib grejer - med några modifikationer ♫ - ♫ Jag ♫' ♫ kommer att sätta tillbaka kommentarerhänderna för att hålla med Licensing grejerna senare ♫ МSK3 ♫ just nu se det som ett exempel ♫

using System;
using System.Web.UI;
using System.IO;
namespace ViewStateCompression
{
    /// 
    /// Summary description for CompressedVSBasePage.
    /// 
    public class CompressedVSBasePage :System.Web.UI.Page
    {
        private LosFormatter  _formatter = new LosFormatter();
        protected override void SavePageStateToPersistenceMedium(object viewState)
        {
            StringWriter sw = new StringWriter();
            _formatter.Serialize(sw, viewState);
            ComDePress cmp = new ComDePress();
            string outStr = cmp.Compress(sw.ToString());
            Page.RegisterHiddenField("__COMPRESSEDVIEWSTATE",outStr);
        }
        protected override object LoadPageStateFromPersistenceMedium()
        {
            string vsString = Request.Form["__COMPRESSEDVIEWSTATE"];
            string outStr = new ComDePress().DeCompress(vsString);
            return _formatter.Deserialize(outStr);
        }
    }
}

Att använda den, bara härta från denna sida istället för det normala Systemet.Web+.+UI+M SK3+Page+.+Ovenligtvis förlorar du några av de normala ViewStats funktionerna som kryptering, men dessa borde vara lätta att placera tillbaka i~...~ Jag ser i dagsläget ganska stora besparingar i ViewState-storlek genom att använda den här -+BZip+MSC8+kompressionen ♫ -+ifall den är en bit kod jag ljög om ♫...,+biten prova ut! ♫

I' har gjort en testprojekt för att leka med det här , det 's VS

UPDATE: Jag just gjorde några tester med det här ... som exempel , med hjälp av en DataSet uppbyggd från "Select * Från Ordern" från Northwind DB som kopplas till en standarddatarid ( jag valde det här för att vara den lägsta möjliga | ...), Jag går från ♫ 659984 ♫ byter i mina synvinkeln ♪ ♪ ner till ♫52080 ♫ Byte ♪ ... ♪ en besparing av runt ♫ МSK7 ♫

UPDATE:OK,OK för de som kritiserade koden ' detta är ett PROTOTYP - bara för att testa idén , Jag planerar att leka lite mer med det här vid en viss tidpunkt och kommer att titta på att inkludera några funkiga egenskaper som Denis Bauer's ViewState viewer byggt-in, olika kompressionssystem , olika kryptering | - inklusive den otroligt effektiva Två fiskar- kort sagt kommer det vara ett leksak för mig att titta på och utöka den nuvarande ViewState-implementationen

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.