elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Pregunta para Super Guru o tal vez no
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Pregunta para Super Guru o tal vez no  (Leído 3,325 veces)
Timerlux

Desconectado Desconectado

Mensajes: 89


EmmHHHHHH !!!


Ver Perfil
Pregunta para Super Guru o tal vez no
« en: 7 Julio 2007, 20:30 pm »

Hola !!!

Pues bien he hecho un sistema de captura de pantalla bastante rapido, el problema es que en la aplicacion servidor se dispara el uso de CPU al 100%,
y eso no me gusta nada, hay alguna manera de limitar el uso de CPU para una aplicacion de Visual Basic, estaria mejor que estubiera al 80% por ejemplo.

Alguien me da una respuesta? gracias


Un saludo  :rolleyes: :rolleyes: :rolleyes:



En línea

sch3m4
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.608

Nihil est in intelectu quod prius not fuerit insen


Ver Perfil WWW
Re: Pregunta para Super Guru o tal vez no
« Respuesta #1 en: 7 Julio 2007, 20:35 pm »

mejor que limitar el uso de cpu, revisa el código de tu programa, y optimízalo  ;)


En línea

SafetyBits

"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..
BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.006


Ver Perfil
Re: Pregunta para Super Guru o tal vez no
« Respuesta #2 en: 7 Julio 2007, 20:52 pm »

Claro que te ha salido rápido, no es para menos.  :xD
Si usas el 100% de la cpu, todas las prioridades van para la ejecucion de ese software, dejando de lado otras cosas, con posible bloqueo del pc.

Haz lo que dice Lympex.


Un saludo
En línea

Tughack


Desconectado Desconectado

Mensajes: 490


Ver Perfil
Re: Pregunta para Super Guru o tal vez no
« Respuesta #3 en: 7 Julio 2007, 20:58 pm »

Para super guru? xD

Pues no hay nada k saber.... so hay una forma buena de hacer eso, ahora se ocupa o no mucho cpu eso ya depende de tu pc...

Hay k para cada imagen k el server envia al client, esperar (en el server) k el client responda al server dejindo k esta listo para recibir otra. Seria algo como:

- Client pide captura de pantalla
- Server recibe la orden
- Server envia la imagen y espera la respuesta del server (aki ya lo tendras k hacer tu)...
- Client recibe la imagen y la carga
- Client pide nuevamente captura de pantalla
....

Solo no uses timers...

Salu2
En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Pregunta para Super Guru o tal vez no
« Respuesta #4 en: 7 Julio 2007, 21:00 pm »

Si lo que estas aplicando tu es un bucle que capture frames peus asi es normal que consuma mucho CPU, si estas utilizando un bucle, intercala en ese bucle la instrucción DoEvents, para que no consuma tanta CPU

Un Saludo.  ;)

En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
[VolkS]

Desconectado Desconectado

Mensajes: 288


[Argentina]


Ver Perfil
Re: Pregunta para Super Guru o tal vez no
« Respuesta #5 en: 7 Julio 2007, 21:29 pm »

estas usando el modulo cJpg o algo asi y ese modulo a micros con menos de 500mhz anda mal
En línea

Tughack


Desconectado Desconectado

Mensajes: 490


Ver Perfil
Re: Pregunta para Super Guru o tal vez no
« Respuesta #6 en: 7 Julio 2007, 23:26 pm »

Si lo que estas aplicando tu es un bucle que capture frames peus asi es normal que consuma mucho CPU, si estas utilizando un bucle, intercala en ese bucle la instrucción DoEvents, para que no consuma tanta CPU

Un Saludo.  ;)



Si eso es importante! Kualkier bucle largo k no tenga un DoEvents se lia y la aplicacion no responde.

Do
    DoEvents
    'codigo
Loop

o

For i = 0 to 5000
    DoEvents
    'codigo
Next i

Salu2
En línea

Timerlux

Desconectado Desconectado

Mensajes: 89


EmmHHHHHH !!!


Ver Perfil
Re: Pregunta para Super Guru o tal vez no
« Respuesta #7 en: 7 Julio 2007, 23:50 pm »

Bueno he de decir que: 

Acabo de terminar un sencillo proyecto para pruebas sobre esta idea y es la primera prueba que hago, supongo que se podra mejorar, hay es donde quiero que me aconsejeis.
La question es esa, se puede Optimizar sin perder velocidad o no mucha y rebajar uso CPU.

Lo he probado en Local con lo que mi PC hace las veces de Cliente y Servidor, aunque no creo que haciendo solo de servidor se reduzca el uso de CPU.

Lympex:
Citar
mejor que limitar el uso de cpu, revisa el código de tu programa, y optimízalo

Esa es la question , se podra optimizar sin perder velocidad, si lo optimizo para que me mande un fotograma por segundo o dos, pues ya no tiene gracia.



Hendrix:
Citar
Si lo que estas aplicando tu es un bucle que capture frames peus asi es normal que consuma mucho CPU, si estas utilizando un bucle, intercala en ese bucle la instrucción DoEvents, para que no consuma tanta CPU

Si Hendrix, era la primera prueba y no me he complicado, le he puesto un DO,DoEvents,LOOP simplemente para ver si me funcionaba, y funciono entre ""

Lo que dice Tughack me da buena espina, en un pricipio pensaba que tendria que hacerlo asi para que funcionara, pero funciono sin que el cliente confirmara la imagen recibida, me sorprendi de que funcionara sin esto, pense que se produciria un Caos y un Desfase entre cliente y servidor. tal vez haciendo esto  y quitando el DO LOOP consiga algo.

Un esquema:
----------------------
SERVER:
1 Captura de pantalla
2 GetDiBits - crea "Array de Bytes" con la informacion de la imagen
3 Comprime Array
4 Extrae Trozo y Envia,  Extrae Trozo y Envia,  Extrae Trozo y Envia ..............

CLIENT:
1 Va juntando,  Va juntando, Va juntando .................
2 Descomprime Array
3 SetDiBits - Muestra la imagen

Bueno ya os contare, y si teneis mas sugerencias !!!


 :D :D  ::) :D :D


En línea

Timerlux

Desconectado Desconectado

Mensajes: 89


EmmHHHHHH !!!


Ver Perfil
Re: Pregunta para Super Guru o tal vez no
« Respuesta #8 en: 8 Julio 2007, 00:11 am »

Otro esquemilla:

Do While Parar = False
   BitBlt Pic1.hdc, 0, 0, Screen.Width, Screen.Height, DK_DC, 0, 0, vbSrcCopy
   Pic1.Refresh
   MyGetDIBits     '-----Procedimiento que crea el Array
   DoEvents
Loop

Private Sub MyGetDIBits()
  Bla, Bla,Bla
  CompressByteArray  XArray  '-----------Aqui se llama para comprimir el Array
  EnviaByteArray XArray          '-----Procedimiento que parte y Envia
End Sub


Private Sub EnviaByteArray()
Bla,Bla, Bla     '------Se envia
End Sub


Voy a probar a meter DoEvents por todas partes por que ademas hay otro pequeño fallo en elcual cada 1 o 2 segundos aveces me llega 1 fotograma defectuoso , como si le faltara un color al televisor, se ve o rojizo o verdoso y eso es porque el Byte Array no se recompone corretamente  y le faltan algunos datos y estoy casi seguro que es porque va a toda ostia (1 fotograma cada 60 milisegundos  o 200 milisegundos en el peor de los casos "Medido en Local") y no le da tiempo a hacer todos los pasos  que tiene correctamente, si pongo DoEvents por todas partes para que termine cada paso a lo mejor lo soluciono, o si hago lo de que el cliente confirme la receppcion tambien


Saludos !!!!!





En línea

Tughack


Desconectado Desconectado

Mensajes: 490


Ver Perfil
Re: Pregunta para Super Guru o tal vez no
« Respuesta #9 en: 8 Julio 2007, 00:31 am »

Aver, no olvides k los estas probando localmente. Remotamente necesitas un metodo de seguridad para garantir k se recibe y esta listo para recibir nuevamente. Sino se lia todo.

Salu2
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
HDD Guru Level Format
Software
Zorronde 6 4,962 Último mensaje 16 Mayo 2011, 04:54 am
por simorg
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines