Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Usuario887

#81
Hola,

Hay muchos sitios en Internet, especialmente en los foros de la MSDN y Stack Overflow, en donce se dice que esto "No es posible".

Esto es parcialmente cierto, porque yo lo hice, con dos Hello World haciendo merge a las secciones de codigo y datos y modificando las referencias a funciones y datos. Ahora, se que es muy poco practico hacer esto con un PE grande, estarias meses calculando referencias... Pero recuerdo que hace años en la biblioteca de underc0de habia un programa binder que lograba hacer esto. Recuerdo que lo hice con dos EXEs complejos y efectivamente se abrieron dos programas al ejecutar el programa resultante. Para ser honesto, no tengo idea de como este programa logro empaquetarlos a los dos de esa manera...

Ya no tengo el programa.

Vengo a preguntar si alguien tiene idea de como lo hizo.

Gracias.
#82
Cita de: MinusFour en 27 Octubre 2021, 22:22 PM
Podrías haber simplemente haber guardado una referencia a la cola para que la inserción no sea O(n)...

Lo se. En la proxima modificacion eso hare... Y cambiare a malloc por HeapAlloc. Me imagino que es poca la diferencia de tiempo entre las dos pero como es un factor proporcional al final compensa.

Gracias.

Buenas noches.
#83
Foro Libre / Re: Anuncian "Gran apagon"
28 Octubre 2021, 12:06 PM
Cita de: FreeCellnet en 27 Octubre 2021, 13:56 PM
combustible fosil

Me alegra que enfatices en fosil.
Yo no creo que la energia electrica sea por ahora la mejor alternativa... Al final esa energia viene del mismo lugar, a menos que las centrales cambien, ademas de que se alcance el rendimiento de un motor a combustion... O... Se modifique el motor a combustion para suplirse de hidrogeno por electrolisis u otro sistema eco-friendly... O, Supongo que infinitas alternativas solo factibles en un mundo imposible  ;D
#84
Foro Libre / Re: Anuncian "Gran apagon"
27 Octubre 2021, 13:49 PM
Cita de: Machacador en 27 Octubre 2021, 13:25 PM
hacer que gente como vos

:xD

Como yo y Pierre Kugelweis... ¿No? Ya me gustaria que me generalizaran junto a el...

Contexto: Un supuesto teniente coronel de Austria. No he dado con mas noticias al respecto que esta, eso ya me huele raro, pero bueno... No se si Austria como estado tenga mucho que envidiar.

Cita de: Machacador en 27 Octubre 2021, 13:25 PM
viva angustiado por un futuro desastroso

O sea, con miedo... Perdoname, pero JAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAJAAJAJAJAJAJAJAJA




Hablando en serio... Si alguien tiene alguna fuente no televisiva de informacion al respecto, la agradeceria. Hasta ahora solo se lo ya mencionado de las medidas tomadas por Austria y poco mas... No entiendo realmente en que se basan para alertarlo.

Buenas noches y un saludo
#85
Foro Libre / Re: Anuncian "Gran apagon"
27 Octubre 2021, 11:29 AM
Gracias por sus respuestas.

crazykenny, ¿Dices Australia de Oceania, o Austria, del continente europeo?

Creo que hablas del segundo por lo que mencionaste sobre la preparacion, y si usaste la palabra correcta porque en este pais precisamente estan preparando 60 de sus mas importantes cuarteles militares previniendo este apagon... A mi realmente no me parecio de tomar en cuenta hasta que supe esto. No creo que un gobierno como ese tome una decision asi a la ligera.

Machacador, lo se, pero mencionas cosas que siempre estan presentes, ¿Por que alertar, por que prepararse ahora...? ¿Por que hablan de los "Proximos meses"?
#86
Foro Libre / Anuncian "Gran apagon"
26 Octubre 2021, 20:29 PM
Hola,

No he investigado mucho al respecto y me gustaria saber la opinion de los miembros del foro.
Llevan ya rato anunciando de un supuesto apagon a nivel mundial...

¿A que exactamente se debe esto? ¿Sobrecarga, supersticion...?

Buenas noches.




A nivel europeo* perdon.
#87
Cita de: Eternal Idol en 25 Octubre 2021, 13:57 PM
https://www.cplusplus.com/reference/cstdio/printf/

"*   The width is not specified in the format string, but as an additional integer value argument preceding the argument that has to be formatted."

No sabia que se podia limitar eso... Un riesgo menos.

Gracias
#88
Cita de: Danielㅤ en 21 Octubre 2021, 23:11 PM
Hola, tal vez usando Virtual List mejores la velocidad de carga:

https://www.google.com/search?q=Virtual+list+en+c

Por otro lado podes usar Threads, por ejemplo que tú programa cree un hilo/thread por cada 100/300/500 mil filas.

La razón de porque el programa trabaja cada vez más lento cuando va cargando las filas, puede ser porque está cargando constantemente en memoria los datos sin ser liberada, deberías liberar memoria después del volcado de datos, mira aquí que interesante esto:



https://www.google.com/search?q=liberar+memoria+free+c

Vos tenés problema con la función malloc() y existe la función free() para justamente liberar memoria.


Saludos

Hola Daniel, gracias por tu respuesta.

El problema era este: Mira la funcion que usaba para añadir entradas en la lista enlazada:

int QuotesMemAddEnd (struct __quotesmem **qm, struct __quotesmem qmData)
{
   struct __quotesmem *aux=(struct __quotesmem *)malloc(sizeof(struct __quotesmem));
   struct __quotesmem **base;
   if(aux==NULL)
   {
       return MTERR_NOT_ENOUGH_MEMORY;
   }

   memcpy((struct __quotesmem *) aux,
          (struct __quotesmem *) &qmData,
          sizeof (struct __quotesmem));

   aux->next=NULL;

   if(*qm==NULL)
   {
       aux->last=NULL;
       *qm=aux;
   }
   else
   {
       base=qm;
       while((*base)->next!=NULL)
       {
           base=&((*base)->next);
       }

       aux->last=*base;
       (*base)->next=aux;
   }

   return 0;
}


Este programa lo hice con el fin de lidiar con muchos datos, y las pruebas del mismo las hacia precisamente con pocos datos, para no enrollarme en la depuracion. La cuestion fue algo muy curioso... Precisamente porque usaba pocos datos para probarlo, no me di cuenta del problema: Nunca me gusto usar el concepto de cabeza en mis listas enlazadas, siempre me parecio una perdida de tiempo porque nunca lidie con mas de diez kilobytes en una lista enlazada (y esto ya es monumental).

No se si te fijaste en que la lista recorre cada elemento hasta llegar a la cabeza para entonces añadir el siguiente. Lo que pasa es que cuando son demasiadas entradas el programa tiene que recorrer tantas cuantas sean, tantas cuantas sean veces. Es decir, en "Tiempo parabolico" (El tiempo se elevaria al cuadrado, mas o menos) Y por eso justamente la funcion era cada segundo mas lenta, porque iba recorriendo mas millones de entradas a medida que se añadian, basicamente lanzando el rendimiento por la borda  :xD

Ni malloc, ni nada... Pura pereza de programador...

De todas formas alojar memoria para todo el archivo de una vez me vino mejor. Lo seguire haciendo.




Cita de: Serapis en 22 Octubre 2021, 16:57 PM
Iba a señalar que me perdía, porque por un lado habladas de cargar el fichero de 20 mb. y luego en otro mensaje decías que lo cargadas inmediato (que es lo lógico)... y también que usabas 11mill millones de filas... que no entendía de donde salían sobre 20Mb. (salvo combinaciones con dichos elementos, pero que no explicaba explicitamente, pues se hablabas de estructuras,registros) ... pero el tema parece finalmente aclarado, así que así no tiene sentdo darle más vueltas.

Solo indicarte que las listas enlazadas son una estructura interesante cuando de lo que se trata es de hacer añadido dinámico y de antemano no se sabe cuanto ha de ser dicho tamaño.
Pero solo es útil finalmente si el resorrido que se precisa usar es secuencial, si el recorrido preciso es aleatorio, entonces la listas enlazadas tienen un pobre rendimiento, porque para ir hasta el índice 20millones cuando hay mill millones de items, requiere ser recorrido uno a uno desde el nodo raíz o desde el nodo final (si es doblemente enlazada).
Si tiras de estructuras que provee el lenguaje, se le supone un rendimiento eficaz (digamos que estará optimizado), si en cambio es una implementación propia, al caso conviene cuando menos mantener un item 'actual', de modo que un salto a otro punto distante pueda verificarse desde que punto queda más cerca: raiz, final o actual y la dirección de avance, para hacer el recorrido lo más óptimo posible en ese aspecto.
Mantener un item 'actual', complica el diseño de la implementación porque debe mantenerse con cada operación que lo afecte, así el costo del resto de operaciones aumenta a cambio de ser más óptimo en acceso.

En definitiva  tienes que tener claro si la lista enlazada es la mejor estructura que precisas en tus pesquisas. Cada estructura de datos tiene su fuerte y ninguna es óptima en cada punto.

Que preciso   ::)
Diste en el blanco, Serapis.
#89
Cita de: Eternal Idol en 25 Octubre 2021, 09:22 AM
%.*s

Perdona el cambio de tema, Eternal Idol, pero una pregunta rapida... ¿Esto que sintaxis tiene?
#90
Citarif(condicion X)
then
    ejecutar(lista de comandos al azar[iterador])
endif