utorrent track stable peliculas gamestorrents downloads descargar c++ windows
http://www.paehl.de/reduce.zip

c++ - peliculas - utorrent intl downloads complete track stable windows



ProgramaciĆ³n de programas delgados en C++(como uTorrent) para Windows (7)

Siempre he admirado el programa original de uTorrent. Se veía genial, tenía menos de 64kb, era extremadamente rápido y tenía todas las características que necesitaba. Lamentablemente, el programa es de código cerrado (y se está volviendo cada vez más inflado), así que vengo a Stackoverflow en busca de inspiración.

¿Qué métodos recomienda para escribir programas rápidos, eficientes en memoria y elegantes en Windows?

Si bien C # (y todo el concepto de .NET) son buenas ideas, me interesan más las respuestas "puristas" y el desafío de escribir un software eficiente y rápido para la plataforma de Windows, al igual que el cliente uTorrent original. No me importa asignar mi propia memoria, hacer mi propia recolección de basura y crear mis propias estructuras de datos.

Recomendaciones sobre libros, artículos, bibliotecas, IDEs (incluso formas eficientes de obtener más cafeína en mi sistema) bienvenidos.


El viejo truco de "LIBCTiny" aún funciona. Con las versiones modernas de VC ++, es posible que necesite activar algunas funciones.

Otro buen truco para saber es la colección de funciones lstr* en Kernel32. Eso ya está en la memoria, por lo que esas funciones podrían ser una opción más sencilla.


General: para ejecutables más pequeños, # defina WIN32_LEAN_AND_MEAN y VC_EXTRALEAN (asumiendo VS). No compile con símbolos de depuración (probablemente lo sabía). Utilice menos bibliotecas y conviértase en usuario para vincular solo las partes de las bibliotecas que necesita (el enlazador de VC es bastante bueno al respecto, pero no toque optlink si puede ayudarlo).

Pele los encabezados de reubicación: vaya a http://www.paehl.de/cms/oldtools y busque "ReduceEXE" (enlace de descarga directa: http://www.paehl.de/reduce.zip ).

Ejecute un empaquetador ejecutable: http://upx.sourceforge.net/ ... Utiliza más memoria en tiempo de ejecución y comienza un poco más lento, pero el archivo es MUCHO más pequeño.

Si le preocupa más el tamaño del archivo que la velocidad, VC tiene una opción para "optimizar el tamaño", lo que desactiva algunas cosas como el desenrollado del bucle y la inserción de funciones.

Si desea ir al hardcore (y no le importan todas las ventajas de ingeniería de software), intente utilizar menos clases, prefiriendo tipos de TPV sin funciones virtuales. Wikipedia sugiere que entre el 6% y el 13% del tiempo de ejecución de un programa se dedica a realizar llamadas virtuales. Además, los propios vtables ocupan (un poco) memoria, y el valor de memoria de size_t al comienzo de cada instancia de clase (que tiene una función virtual) se asigna para el puntero vtable. IOW, "pure C" puede terminar siendo un poco más rápido (aunque si te encuentras emulando clases con punteros a funciones, vuelve a C ++).


La Biblioteca de plantillas de Windows está orientada a lo que desea hacer. Es un contenedor de C ++ ligero y basado en plantillas para la API de Win32. Con él, no tiene que pasar por el dolor de la codificación directa de Win32, pero no agrega muchos sobrecargas como MFC.


Si desea optimizar la huella de memoria más pequeña posible y no le importa saltar a través de un montón de aros que el .NET CLR se inventó para cuidar de usted, entonces escribir una aplicación Win32API directa y engancharse a GDI+ es el camino ir. Petzold fue la referencia definitiva.

Realmente, sin embargo, es una especie de tonto, ya que el tiempo de ejecución de .NET se cargará en la memoria del sistema operativo, ya sea que la aplicación lo use o no, por lo que también puede vincularse a él.


The Demo Scene es un grupo de personas que pasan su tiempo libre intentando hacer ejecutables impresionantes y muy pequeños, que generalmente hacen algo en 3d a la música. A menudo, toda la demostración (código, música, datos en 3D) se compila en un solo ejecutable comprimido a 64k o de un tamaño impresionantemente pequeño para el contenido.

Puede inspirarse en las demostraciones y aprender cómo se crearán informará su obsesión de crear pequeños ejecutables.

A menudo, la clave es aprovechar tantas DLL de terceros como sea posible que estén instaladas con Windows. Además, se requiere una codificación personalizada de bajo nivel de todo lo demás.


uTorrent está escrito en C ++ y utiliza la antigua API de Win32. Google Chrome también está escrito de esta manera, ¿por qué no descargar el código fuente y aprender de su código?


Notepad++ es también un programa de sistema operativo muy rápido, altamente optimizado y muy útil que podría despertar tu inspiración. Su filosofía es similar a la de uTorrent. Utiliza la antigua api de Win32, que todavía debería ser la más rápida que puedas usar en Windows.

Si quieres ser realmente artístico, la escena demo es el lugar perfecto para ir. Aunque su código no siempre está abierto.