« first day (764 days earlier)      last day (2643 days later) » 

00:59
En lugar de responder esta pregunta, sería mejor los usuarios nos ayudaran que el OP mejore sus preguntas.
-2
Q: Metodo de ordenacion Sort de la interfaz List Java

OKOKQué tipo de ordenación hace el metodo sort de una colleccion tipo List? Y que complejidad tiene??(nlogn, n, ...)

 
1 hour later…
02:05
@AlvaroMontoro huele a autocompletado de código xd
02:26
@EduenSarceño @Jorgesys parece que es un por forEach
 
8 hours later…
10:46
Buenos días a todos ;)
 
3 hours later…
14:07
buenos días a todos
@EduenSarceño hola buen dia
@EduenSarceño hola :P
@EduenSarceño @x-rw solo debes renderizar la página con un <script></script> y el contenido que deseas exportar a angular
no entiendo a lo que te refieres
14:28
Buenos dias!
Tengo la siguiente pregunta:
Como puedo darle mas potencia de procesamiento a mi aplicación?
@x-rw mira, todo servidor http su única tarea es la de producir un documento html, si se quiere exportar una variable accesible desde el lado cliente, entonces el servidor http debe inyectar en el html la variable correspondiente
@David dependerá la plataforma
@EduenSarceño pero directamente a html_? html no puede renderizar variables
Si, se que suena un poco contradictorio y que lo que debería de estar buscando es la optimizasion de la aplicación para que consuma menos recursos, pero en mi caso es lo contrario, quiero asignarle mas potencia para que realice tareas mas rápidas.
@EduenSarceño Mi aplicacion la estoy desarrollando en java.
@x-rw en el html inyecta un <script> </script>
@David ahí es otra historia, deberás enviarle parámetros a la jvm para que tenga más recursos
@EduenSarceño pero eso lo tendria que hacer en todos los html? no hay manera de hacer un tunel, provider o algo asi?
14:36
@x-rw para eso es que usas engines de renderizado
te digo, usar angular no te salva de usar sistemas de plantillas en el lado servidor
@EduenSarceño aa vaya ya te entiendo, pero yo no quisiera usar los engines
entonces haz tu engine propio
simplemente concatena y splitea el contenido del sitio
@EduenSarceño hahahah no me referia a eso, yo queria mandarlo las variables a angular, o no se puede?
@David ya localizaste qué es lo que alentiza tu sistema?, pueden ser varias razones, 1) Poca memoria heap habilitada, 2) Muchas solicitudes I/O bloqueantes, 3) Mal manejo de recursos por parte de tu aplicación
@x-rw respuesta corta: No
Recuerda que http es un protocolo cliente-servidor. Una vez el servidor de la respuesta el cliente ya no tiene conexión.
El cliente es el navegador web, sobre tu navegador web está angular, angular no puede pedir información directamente a tu servidor.
Con Angular se acostumbra crear una REST api o inyectar el código directamente en el html
lo más habitual es la primera opción
@EduenSarceño entonces talves se pueda con la rest api
14:41
En el servidor debes crear un json que consuma directamente angular via ajax
por ejemplo, imagina que quieres traer los usuarios de tu app
http:/localhost/api/v1/users?get=all
users devolverá un json con todos los usuarios
si quieres limitarlos
http:/localhost/api/v1/users?get=all&limit=10
Con javascript lo consumirías via ajax
@EduenSarceño nada de eso. Simplemente la aplicación no trabaja tan rápido como quisiera. Al monitorearla veo que en promedio solo consume un 3% del CPU. Quisiera poder aumenta su consumo de cpu para que esta trabaje mas rápido.
@EduenSarceño estoy revisando carlosazaustre.es/…
var con = new XMLHttpRequest();
con.open('GET', 'api/v1/users?get=all&limit=10')
con.readyStateChange(...)
con.send()
es que los tutoriales te dan la forma en que ellos trabajan,no es la única forma
yo te recomiendo que primero aprendas las bases del protocolo http
tu temario debería ser
1) Protocolo http
arquitectura, paso de mensajes, comunicación entre nodos
2) Generación de recursos dinámicos
@David es que dependerá de tu aplicación, si tu aplicación hace solicitudes I/O bloqueantes, entonces tu aplicación pasará la mayor parte del tiempo suspendido
A que se refiere con solicitudes I/O?
por ejemplo si tu aplicación lee un archivo ya sea stdin o cualquier otro, y haces un read(...) cuando el buffer está vacío, eso automáticamente pondrá tu aplicación en un estado de suspención hasta que el buffer esté lleno de nuevo.
Si utilizas GUI, tu aplicación también es bloqueante, en el caso de java.swing es monohilo, y utiliza un sistema basado en mensajes, java.awt.EventDispacher es bloqueante cuando no hay ningún mensaje que despachar.
en general existen cientos de funciones que son bloqueantes y ponen a tu aplicación en suspensión.
14:52
Solo quiero saber si existe un método mágico con el pueda decirle al sistema "Oye quiero que a mi aplicación le des el 50% del procesamiento del CPU".
no, no hay
y aunque hubiese, si tu aplicación siempre está bloqueante sería por gusto.
aunque tuvieses el sistema operativo para ti solito siempre estaría en 3-2%
Pero hay aplicacion que devoran hasta el 75% del CPU, como Chrome.
lo más que puedes hacer es aumentar el heap size de la jvm para consumir más recursos (memoria)
chrome no está hecho en java.
y te aseguro que chrome no tiene llamadas bloqueantes
Pero hay aplicacion que devoran hasta el 75% del CPU, como Chrome.
por ejemplo las bases de datos jamás usarán el 75% del CPU, salvo que toda la base de datos esté en memoria, lo cuál es imposible si la base de datos excede la memoria principal del computador
la razón: Las bases de datos leen archivos en el sistema de archivos, al hacer una solicitud I/O el sistema operativo pone en espera la aplicación e interrumpe su ejecución y la reanuda hasta que el recurso solicitado esté disponible para su uso.
en Interfaces gráficas la propia interfaz se coloca en un estado de suspención hasta que sucede una excepción controlada (ej el usuario mueve el mouse, presiona una tecla, etc)
15:02
A ver si nos entendemos mejor. Tengo un for que obtiene una gran "cantidad de datos", en cada iteracion este obtiene 20 datos y realiza mas de 500 iteraciones. El proceso total tarda como 3 minutos. Vuelve mi pregunta: Podria hacer que el for obtenga los datos mas rapidos?
Te contesto con lo mismos: de dónde lees esos datos? memoria?, disco duro?
si es el disco duro entonces tu aplicación estará en suspenso hasta que se cargue tu archivo en memoria
Scraping
HTML
aunque sea web scrapping
el web scrapping siempre guarda los recursos en ficheros alojados en disco
en este caso aún sería mas lento
Se crearía una conexión con el servidor, se esperaría el mensaje (limitado por tu ancha de banda) se guardaría la respuesta en disco, luego leerías la repsuesta en disco.
todos estos procesos son bloqueantes
EL scraping lo estoy realizando de un archivo local.
Por lo que simplemente es parsear el html
entonces revisa el cuello de botella al analizar el html
Imagino que usas alguna implementación de DOM
15:08
@EduenSarceño Y como hago eso?
no analices el html
simplemente iteralo
si la aplicación es más rápida entonces tu cuello de botella está en crear el DOM
Sigo pensando que si le meto mas leña al fuego, mas rapido estara la comida.
hazlo
pero no existe mecanismo alguno
es pedirle ir al espacio a una bicicleta.
aunque le prepares el camino, los medios y lso viáticos, sencillamente no irá al espacio
@EduenSarceño Tengo que analizarlo, porque no me interesa el html completo.
extrae lo que quieras por regexp o algún interprete básico
no tienes necesidad de crear DOM
imagina 200 DOM objects de 1MiB cada uno
Si no incrementas el heap de la jvm tus recursos estarán la mayor parte del disco
la mayor parte en el disco.
15:11
@EduenSarceño Eso seria mas trabajo, sin contar que no se trabajar con expresiones regulares. Eso esta en mi lista de cosas por aprender.
cambia el DOM por otro interprete
en tu caso te recomiendo SAX en lugar de DOM
SAX no construye un objeto así que no tendrás límite de memoria, en su lugar el te notifica por eventos lo que vaya analizando, es tu deber ir haciendo las validaciones que sean necesarias para dar con el recurso que buscas
Todo lo que me sugieres son soluciones de optimizacion. Yo no quiero optimizar la aplicación, quiero que sea mas rapida metiendole mas potencia.
una ves lo encuentres entonces deberás guardarlo en bufer.
@David No puedes
buena suerte buscando tu "potenciador"
me rindo contigo.
@EduenSarceño Jajaja, es que no puedo creer que no se puedan aprovechar los recursos del sistema.
porque el programador no los aprovecha
quieres aprovechar recursos sin optimización...
15:17
En vez de alivianar la carga para que mi aplicación sea mas rápida, quiero aumentar la fuerza para que esta sea mas rápida.
y cómo lo harás más rápido?
es más para ti qué es "fuerza"
Metiendo mas potencia.
@EduenSarceño mas cpu, mas ram
La cpu se consume por demanda
tu aplicación no demanda cpu porque todo el tiempo se la pasa esperando solicitudes I/O
@EduenSarceño Pues quiero aumentar la demanada
ya te dije que tienes que hacer, si quieres demandar más cpu
15:20
@EduenSarceño Recuerdemelo
lee arriba
@EduenSarceño Es que hemos hablado mucho
Si lo puede repetir se lo agradeceria
@EduenSarceño En la ejecución de un for hay solicitudes I/O?
@x-rw lograste crear ya la rest api?
Y todo lo que dices es como que el consumo de la aplicación aumenta por el tiempo que esta dure ejecutándose sin interrupción (sin dormir). Osea, que una aplicación que comience en 0% a los 10 minutos estará consumiendo un 10% de la cpu. Eso es lo que puedo entender de todo lo que me has dicho de las "solicitudes I/O".
@EduenSarceño ya casi
15:30
@David La aplicación puede consumir hasta un 90% de la CPU en cualquier instante, desde el primer milisegundo.
@EduenSarceño Eso es lo quiero. Como lo hago?
la conexión http de web scrapper es I/O, la lectura a la respuesta del web scrapper es I/O, si tu aplicación consume bastante RAM, la mayoría de tus objetos estará en disco y no en ram, entonces también es I/O
entonces deja de hacer I/O bloqueante
así de sencillo.
respuesta corta: re programa tu aplicación pero esta vez teniendo en cuenta lo que haces
@x-rw estás usando base de datos?
@EduenSarceño si pero mysql
@x-rw por ahora simula una base de datos después te ocupas de implementar la conexión
por ejemplo en vez de solicitad archivos a tu mysql, crea un objeto con varias entradas que simulen la base datos
así te limitas en programar un prototipo de lo que será tu app
@Jorgesys arroje un poco de su luz
@EduenSarceño No entiendo que tiene que ver I/O con consumo de recursos.
15:41
@David que mientras haces una I/O el sistema operativo no le da tiempo de CPU a tu aplicación :)
Ni siquiera puedo encontrar "solicitudes I/O" en google.
In computer science, asynchronous I/O, or "Non-sequential I/O" is a form of input/output processing that permits other processing to continue before the transmission has finished. Input and output (I/O) operations on a computer can be extremely slow compared to the processing of data. An I/O device can incorporate mechanical devices that must physically move, such as a hard drive seeking a track to read or write; this is often orders of magnitude slower than the switching of electric current. For example, during a disk operation that takes ten milliseconds to perform, a processor that is clocked...
 
2 hours later…
17:15
buenas
@byte96 Buenas
17:50
@byte96 buenas
que tal ?
@gbianchi @EduenSarceño @CamiloVasquez como coloco formato en C# para escribir un archivo de texto?
tienen idea ?
18:05
@byte96 lo siento, no se nada de c#
@byte96 que tipo de formato?
tengo problemas de perfomance con un siwtch
me demora mucho al agregarl estilos a las celdas de excel
@byte96 sprintf o equivalentes
@AaronRomero listo, gracias ya lo pude solucionar
@byte96 excelente
@AaronRomero seguro que es el switch el problema? xd
18:20
@EduenSarceño cuando comento el siwtch, me lo genera rápido
@€d
@EduenSarceño listo listo :)
@EduenSarceño es el switch o la carga de estilos
@AaronRomero diria que es la carga, el switch tiene tiempo constante O(1)
@EduenSarceño y como podría agilizar eso?
@byte96 buenas.. a que te referis con formato?
@EduenSarceño sprintf no existe en c#
18:22
@gbianchi por algo puse equivalentes
@gbianchi con tabuladores, salto de lineas, ya esta pude hacerlo
@EduenSarceño no hay funciones para eso, solo hay objetos que controlan flujos...
@gbianchi gracias sir.
de nada :)
@AaronRomero creas un objeto de estilo o algo que consuma bastante tiempo?
18:24
@EduenSarceño si lo creo
@AaronRomero recíclalo, es probable que excel de todas formas cree una copia.
déjalo fuera de la iteración y cambia las partes relevantes
@EduenSarceño veré como hacerlo, ok
@PedroMiguelPimientaMorales youtube.com/watch?v=85jVG-Y-5BM
18:48
@EduenSarceño igual se demora
@AaronRomero :p
@AaronRomero Jejeje....
@PaulVargas Sir
@PaulVargas A ver
@PaulVargas Jajaja.... que buena
 
2 hours later…
20:41
hola
@AlvaroMontoro Hola :P que tal?
bien, aqui intentando hacer algo de programacion
como va todo?
21:19
@AlvaroMontoro bien, ahora ordenando papeles. Y tengo en mente realizar una librería de Javsacript pero no sé muy bien como empezar. ¿Sabes si hay algunas pautas definidas? Habia pensando en crearme un namespace y que estuvieran todas las funciones contenidas en el mismo.
@FranciscoRomero Hola
@PedroÁvila hola :)
@FranciscoRomero :D
@PedroÁvila que tal?
@FranciscoRomero Todo bien, sin novedad, interesante lo que deseas hacer
21:24
@PedroÁvila lo único que no sé como empezar :S
@FranciscoRomero Insignificante detalle, jejeje....
@PedroÁvila siempre los inicios son duros pero el resultado siempre merece la pena ;)
@FranciscoRomero Así es me ha pasado
@FranciscoRomero no s'e realmente como sereia
que haria tu libreria?
21:39
@AlvaroMontoro Sería para simplificar funciones que son triviales pero que de normal hay que escribir algo más que una línea de código. Ejemplo: que haya una función compruebaPrimo(), le pases uno o varios números y te devuelva el resultado.
@AlvaroMontoro entonces la llamaría así librería.compruebaPrimo(parametros)
22:21
Hola a tod@S
@David Hola David que hay???
@Jorgesys Hi
@Jorgesys ¿Cómo estas hermano?
@PedroÁvila Pedro bien aquí descansando en casa
@PedroÁvila y tu que comentas!
@Jorgesys Igualmente
@Jorgesys Todo tranquilo, relajado....
@PedroÁvila hoy no trabajas en algùn proyecto?
@Jorgesys No
@Jorgesys Hoy es descanso
22:25
@PedroÁvila que bien Pedro me da gusto.
@Jorgesys Muchas gracias amigo, igualmente
@FranciscoRomero suena interesante, cuando la completes, compártela, que podamos echarle un ojo
@AlvaroMontoro Sí, mi idea es publicarla en GitHub una vez terminada o al menos en su primera fase. Así podría contribuir más gente y la podrían utilizar libremente :P
2

« first day (764 days earlier)      last day (2643 days later) »