Microsoft ha publicado bajo opensource, una pequeña parte del código fuente del buscador Bing, continuando con los pasos que anteriormente viene dando con respecto a .net
La compañía Microsoft comienza a dar serios cambios en cuanto a su percepción del opensource, en esta ocasión ha liberado una pequeña parte del código fuente de su motor de búsqueda Bing.
Se trata de la parte Microsoft.IO.RecyclableMemoryStream del motor de búsqueda Bing la cuál y según el desarrollador Ben Watson de Bing “ofrece un comportamiento superior para sistemas de rendimiento crítico” y esta optimizado para realizar lo siguiente:
- Elimina grandes asignaciones de numerosos objetos mediante el uso de un buffer combinado
- Incurre en un número mucho menor al generar 2GC’s, y demora mucho menos tiempo debido al uso de GC
- Evita fugas de memoria debido al tamaño de las piscinas acotadas
- Evita la fragmentación de memoria
- Provee un excelente depuramiento
- Proporciona indicadores para el seguimiento de rendimiento
En cuanto a su funcionamiento, Microsoft.IO.RecyclableMemoryStream lo hace de la siguiente manera:
- Usa la misma semántica de System.IO.MemoryStream
- En lugar de agrupar los flujos en sí mismos, se agrupan los bufferes subyacentes. Esto permite liberar los bufferes de una manera sencilla y retornarlos nuevamente a la piscina, así como detectar los patrones de uso no válidos (como la reutilización de un flujo después de haber sido eliminado).
- Cada flujo puede estar etiquetado con un string identificatorio que se usará en el registro. Esto puede ayudar a encontrar errores y fugas de memoria en un código relativo cuando se usa una piscina equivocada
- Las características de depuración como la grabación en el llamado de asignación de pila, permite localizar fugas en la piscina de flujos.
- Se pueden asignar los picos máximos en piscinas libres sin usar demasiada memoria
- Permite ajustar y flexibilizar los límites a la agrupación de algoritmos
- Permite rastrear las mediciones y los eventos que pudieran impactar en el sistema
- Múltiples piscinas internas: por defecto, una piscina pequeña tendrá 128K y la adicional, mas grande, tendrá a partir de 1MB, gráficamente, será similar a esto:Como vemos, todo indica que el análisis que hizo la gente de ZDnet sobre de que Microsoft se está convirtiendo en una empresa opensource no es tan descabellado después de todo.