Home
Username:
Password:
Microsoft Visual Basic .NET (Español) Tutorials

Recolección de Elementos No Usados / "Finalize"




Visitors to VTC.com will be able to view all introductory videos for each training course.
Free Trial Members will gain access to first three chapters for each training course.
Full Access Members have full access to VTC.com’s entire library of video tutorials.


Learn More

Subtitles of the Movie

ÿþ [00:00:00.0] Para concluir el tema de la recolección de elementos no usados, quisiera darle un par de consejos... [00:00:06.0] ...prácticos para optimizar todo este proceso. En primer lugar, un par de videos antes mencioné que el... [00:00:13.0] ...recolector de elementos no usados utilizaba tres generaciones, a saber: cero, uno y... [00:00:18.0] ...dos, y que se ejecuta una recolección de elementos no usados cuando una generación se llena y no puede albergar más datos. [00:00:25.0] También mencioné que, a primera vista, parecería que disponemos de un espacio limitado, pero en realidad... [00:00:33.0] ...256 MB nos permiten almacenar unos 32 millones de objetos, lo cual es una cifra realmente alta. [00:00:40.0] No obstante, hay algo que usted, como cliente, puede hacer si la memoria es insuficiente o si cree que... [00:00:43.0] ...existe esa posibilidad: usar una referencia débil ("weak reference"). [00:00:47.0] Esto es muy sencillo. Observe la diferencia aquí: en lugar de escribir "Dim a As New Mark", suponiendo que "Mark"... [00:00:53.0] ...sea una clase, escribo "Dim a As WaekReference(Mark)". [00:00:58.0] Ahora bien, esto creará, a partir de Mark, una instancia llamada "a"; pero ésta será una referencia débil. [00:01:05.0] Así pues, esta referencia quedará ubicada en el montón administrado; y si el optimizador o el... [00:01:10.0] ...recolector de elementos no usados necesita espacio y no lo hay, éste finalizará y destruirá el objeto Mark. [00:01:18.0] Naturalmente, si declaro a este objeto como "débil", tendré que verificar si aún existe en el momento en... [00:01:26.0] ...que vaya a utilizarlo. Una vez más, me permito remitirle al Kit de Desarrollo de Software (SDK) y a la documentación... [00:01:32.0] ...para averiguar con exactitud cómo hacerlo. Es obvio que esto siempre tendrá sus inconvenientes, pero... [00:01:39.0] ...permite efectuar la recolección si la memoria es insuficiente, impidiendo errores de desbordamiento de pila. [00:01:46.0] Hablemos ahora de la recolección forzada ("Forcing Collection"). Hasta ahora he dicho que la recolección de elementos es automática... [00:01:50.0] ...es decir, debemos esperar a que se dé, y no sabemos cuándo ocurrirá; pues bien, esto no es cierto del todo. [00:01:54.0] Quizá le parezca dispendioso habituarse a esto, pero puede llamar al método "System.GC.Collect" y... [00:02:00.0] ...pasar como entero una generación, bien sea la cero, la uno o la dos, obligando a realizar la recolección para esa generación. [00:02:09.0] Ahora bien, usted podría estar preguntándose si no es mejor forzar la recolección en lugar de llamar a un objeto y... [00:02:17.0] ...eliminarlo. Para averiguar esto, también lo remitiré a la documentación. [00:02:20.0] Como es obvio, este proceso consume muchos más recursos, pues debe trasladar algunas cosas. [00:02:25.0] Usted puede determinar en qué generación estará el objeto llamando a "System.GC.GetGeneration" y... [00:02:32.0] ...pasando el objeto como entero; a su vez, le será devuelta como entero... [00:02:36.0] ...la generación donde está ubicado el objeto, si usted necesita esa información. [00:02:41.0] Así, es posible comprobar en qué generación se halla un objeto, para que la recolección lo elimine. [00:02:46.0] Pero tenga presente que si "Dispose" y "Finalize" consumen importantes recursos o no son muy eficientes, ¿qué pasará si forzamos... [00:02:55.0] ...la recolección de elementos de continuo? Le reitero que este último proceso trasladará algunos punteros, reubicará muchas cosas... [00:03:02.0] ...llamará a "Finalize" y, en fin, usted deberá realizar numerosas operaciones. Así, este instrumento está a su disposición, pero... [00:03:10.0] ...no abuse de él. Aquí insisto en la recomendación de Microsoft: lo mejor es dejar que la recolección de elementos no usados... [00:03:16.0] ...se encargue automáticamente de eliminar los objetos. [00:03:19.0] Pero es bueno saber que, de ser necesario, puede gestionar sus recursos manual y explícitamente... [00:03:25.0] ...y que éstos son algunos de los medios para hacerlo y para optimizar ese proceso. [00:03:33.0]

Tutorial Information

Course: Microsoft Visual Basic .NET (Español)
Author: Mark Long
SKU: 33538
ISBN: 1-932808-12-4
Release Date: 2004-09-17
Duration: 6 hrs / 88 lessons
Captions: Available on CD and Online University
Compatibility: Vista/XP/2000, OS X, Linux
QuickTime 7, Flash 8

VTC Sign up & Benefits

  • Unlimited Access
  • 98,729 Video Tutorials (23,265 free)
  • Video Available as Flash or QuickTime
  • Over 1026 Courses
  • $30 for One Month Access
  • Multi-User Discounts Available