Come utilizzare la serializzazione compatta

Perché serializzazione compatta?

È un processo di produzione di una forma compatta di oggetto serializzato per il miglioramento delle prestazioni che si traduce in viaggi di rete più rapidi. Come illustra il nome, il file serializzato compatto è compatto nella forma di dati e processo. L'idea alla base della serializzazione compatta è che a ogni "tipo noto" (un tipo noto è un tipo registrato con il framework) viene assegnato un handle di tipo univoco a 2 byte dal framework, che consente al deserializzatore di identificare in modo univoco i "tipi noti" .

Si supponga, ad esempio, che il framework assegni un handle 0 a System.Int32. Quindi il serializzatore scrive l'handle a 2 byte seguito da 4 byte di valore dell'oggetto nel flusso. Deserializer legge l'handle, determina il tipo di oggetto, quindi crea e popola l'oggetto con il relativo valore. D'altra parte, la serializzazione nativa scrive le informazioni complete sul tipo con i dati dell'oggetto. NCache supera in modo sofisticato questi problemi della sterilizzazione nativa nei seguenti modi:

  • Qui l'oggetto serializzato non contiene informazioni e assembly completi sul tipo. Contiene solo un valore oggetto e un handle univoco a 2 byte. Questo handle univoco a 2 byte viene utilizzato come riferimento per identificare in modo univoco i dettagli del tipo durante la deserializzazione di un oggetto. In questo modo la dimensione dell'oggetto si riduce
  • La serializzazione compatta evita anche la riflessione che riduce anche l'overhead
  • Le due caratteristiche precedenti riducono le operazioni di I/O
  • Man mano che le dimensioni dell'oggetto diminuiscono, la rete scatta automaticamente più velocemente e alla fine il costo diminuisce
  • Le dimensioni ridotte degli oggetti e il traffico di rete veloce aumentano le prestazioni dell'applicazione

Per utilizzare la serializzazione compatta, è necessario definire un costruttore pubblico predefinito (senza parametro) in un tipo serializzabile compatto e registrare quel tipo con NCache Manager. NCache ora supporta i tipi generici personalizzati. Tutti i tipi generici con qualsiasi numero di argomenti possono essere serializzati tramite la serializzazione compatta. Se un client non desidera aggiungere tipi generici e relativi parametri tramite l'interfaccia utente, ha la possibilità di aggiungerli tramite la classe IGenericTypes.

Come utilizzare la serializzazione compatta?

Per utilizzare i tipi serializzabili compatti con NCache Configura cache con NCache Manager e quindi registra i tuoi tipi serializzabili compatti con NCache.

Passaggio 1: registrazione dei tipi serializzabili compatti:

È possibile registrare i tipi uno per uno tramite "Aggiungi tipi" pulsante. Esegui i seguenti passaggi per registrare i tuoi tipi con la cache configurata:

  • Arresta la cache se è in esecuzione.
  • Clicca sul "Serializzazione compatta" scheda che aprirà la schermata seguente.
Registrazione di tipi serializzabili compatti
  • Clicchi "Aggiungi tipi" pulsante. UN 'Seleziona classi compatte' apparirà la finestra di dialogo.
  • Cercare il file di assieme che contiene i tipi compatti facendo clic su 'Navigare' pulsante come mostrato in figura.
  • Seleziona le classi che desideri registrare con la cache dall'elenco delle classi caricato.
  • Rassegna Stampa "Aggiungi classe" pulsante per aggiungere le classi nell'elenco delle classi selezionate.
  • Clicchi 'Ok' pulsante.
Classi compatte nella serializzazione
  • I tipi appena aggiunti inizieranno ad apparire nella casella di riepilogo sotto il "Serializzazione compatta" scheda con informazioni sul tipo compatto e sulla piattaforma.
  • 'Rimuovere' il pulsante cancellerà il tipo selezionato dall'elenco dei tipi registrati.
Come utilizzare la serializzazione compatta
  • Questo mostra tutti i tipi aggiunti. Ora è possibile aggiungere argomenti con tipi generici selezionando il tipo specifico e quindi facendo clic su 'Aggiungere ' pulsante.

Passaggio 2: registrazione di tipi compatti generici tramite il gestore di tipi generici

Questo è l'altro modo per registrare tipi compatti generici tramite "Generic Type Handler". Con Generic Type Handler l'utente può aggiungere tutti i tipi generici in una volta implementando la nostra interfaccia. Ciò consente di risparmiare tempo e fatica. Ecco un codice di esempio per questo.

public class CustomGenericType <T,K,V>         {           }

public class SetGenerics: IGenericTypeProvider
	{ 
	Type[] types = new Type[6]; 
        
	#region IGenericTypeProvider  Members 
	Type[] IGenericTypeProvider.GetGenericTypes()
		{ 
		  types[0]=typeof(Dictionary<string, Customer>);
		  types[1]=typeof(List<int>);  
		  types[2]=typeof(CustomGenericType<Employee, Product, Customer>);
		  types[3]=typeof(CustomGenericType<Employee, Product, int>); 
		  types[4]=typeof(CustomGenericType<Employee, string, byte>);
		  types[5]=typeof(CustomGenericType<string, Customer, bool>);
		  return types;
		}
	#endregion
	}

Per i tipi di registrazione, attenersi alla seguente procedura.

  • Clicchi "Gestore di tipo generico" pulsante. UN 'Seleziona classi compatte' apparirà la finestra di dialogo.
  • Cercare il file assembly che implementa questa interfaccia e contiene i tipi compatti facendo clic su 'Navigare' pulsante come mostrato in figura.
Registrazione di tipi compatti generici
  • Clicchi 'OK' pulsante. Tutti i tipi aggiunti verranno elencati come mostrato di seguito.
Framework di serializzazione compatto

Cosa fare dopo?

© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.