2012-05-28 2 views
1

J'ai besoin de suggestion de cache externe pour l'application ASP.Net.Cache Fast-Proc rapide pour l'application ASP.Net

Le cache In-Proc ne peut pas être partagé par les processus multi w3wp.exe.

Je suis articles qu'il ya certains des projets open source pour ce sujet, comme http://www.sharedcache.com/cms/

Mais le problème est - 1. sérialisation est nécessaire pour stocker/récupérer les données mises en cache, ce qui est lent pour grande instance d'objet. 2. Certains types d'infrastructure ASP.Net ne peuvent pas être sérialisés, comme la classe RouteColltion.

Avez-vous une idée d'une solution de cache Out-Proc rapide sans sérialisation?

+0

Pourquoi avez-vous besoin de mettre en cache une RouteCollection? – alexn

+0

Quel type d'instances/arbres d'objets importants utilisez-vous? Pourquoi mettez-vous en cache un objet RouteCollection? (La RouteCollection actuelle n'est-elle pas toujours présente dans RouteTable.Tables?) Avez-vous envisagé de mettre en cache le html rendu à la place des structures de données sous-jacentes? – sisve

+0

RouteCollection est juste un exemple, mon cadre MVC est modifié et le RouteCollection est chargé dynamiquement. la procédure d'initialisation prend plus de 40 secondes même avec chargement parallèle –

Répondre

0

La sérialisation est inévitable lors de l'utilisation d'un cache externe car les objets sont transmis d'un processus à un autre (probablement sur une autre machine), ce qui ne peut pas être fait sans sérialisation des objets. Toutefois, pour réduire le coût de la sérialisation, NCache une solution de mise en cache distribuée basée sur .net offre une fonctionnalité Compact Serialization. La sérialisation compacte, comme son nom l'indique, fournit une sérialisation optimisée des objets, ce qui réduit le nombre d'octets par rapport à la sérialisation .Net native. Ainsi, réduire le temps de communication nécessaire pour transmettre ou recevoir des données provenant d'un cache hors processus.