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


 


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Librería de Snippets en C/C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 [4] Ir Abajo Respuesta Imprimir
Autor Tema: Librería de Snippets en C/C++  (Leído 10,563 veces)
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Librería de Snippets en C/C++
« Respuesta #30 en: 2 Agosto 2013, 09:14 »

No creo que haya tanta diferecia, si me lo puedes demostrar las usaré :P
Gracias, voy a informarme, un saludo.

A ver, las llamadas a printf, cout, etc, se comunican directamente con el sistema.

Sin embargo, un system( " ... " ) es más complejo:

* En primer lugar, no es portable.
* En segundo lugar, una llamada a system( "echo ..." ), por ejemplo implica ejecutar el programa pause, es decir, tu aplicación solicita al sistema la ejecucion de la aplicación echo, esta aplicación se ejecuta, recibe el mensaje y entonces hace su propia llamada a printf, después finaliza, se liberan los recursos y tu programa vuelve a recuperar el hilo de ejecución.

Se puede afirmar, por tanto, que usar funciones propias de c y c++ para interactuar con el usuario son muuuuucho más eficientes que usar system.


En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Librería de Snippets en C/C++
« Respuesta #31 en: 2 Agosto 2013, 17:13 »

Código
  1. #include <iostream>
  2. #include <chrono>
  3. #include <cstdlib>
  4.  
  5. int main()
  6. {
  7. auto t1 = std::chrono::high_resolution_clock::now();
  8.  
  9. for(int i=0; i<10000; i++)
  10.  system("echo hello");
  11.  
  12. auto t2 = std::chrono::high_resolution_clock::now();
  13.  
  14. auto t3 = std::chrono::high_resolution_clock::now();
  15.  
  16. for(int i=0; i<10000; i++)
  17.  std::cout << "hello" << std::endl;
  18.  
  19. auto t4 = std::chrono::high_resolution_clock::now();
  20.  
  21. auto span = std::chrono::duration_cast<std::chrono::duration<double>>(t2 - t1);
  22.  
  23. std::cout << "It took " << span.count() << "seconds to print text using echo" << std::endl;
  24.  
  25. auto span2 = std::chrono::duration_cast<std::chrono::duration<double>>(t4 - t3);
  26.  
  27. std::cout << "It took " << span2.count() << "seconds to print text using cout" << std::endl;
  28.  
  29. return 0;
  30. }
  31.  

Este código hace una comparación del tiempo que se tarda en imprimir "hello" en pantalla usando system() y llamando a echo; y usando cout. Se debe compilar en modo C++11.
 
Cita de: Output
It took 30.9291 seconds to print text using echo
It took 0.768124 seconds to print text using cout

En fin, no es una buena práctica llamar a system.


En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
Páginas: 1 2 3 [4] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Code Snippets
Análisis y Diseño de Malware
De@th (L1zb3th) 2 1,912 Último mensaje 1 Julio 2007, 16:23
por Red Mx
[SOLUCIONADO] Duda sobre los snippets
.NET
Eleкtro 3 1,541 Último mensaje 20 Diciembre 2012, 13:50
por Novlucker
Librería de Snippets para VB.Net !! (Compartan aquí sus snippets) « 1 2 ... 50 51 »
.NET
Eleкtro 509 215,186 Último mensaje 3 Junio 2017, 03:55
por Eleкtro
[Snippets] javascript / CSS / HTML5
Desarrollo Web
#!drvy 2 1,614 Último mensaje 19 Marzo 2013, 21:48
por #!drvy
Librería de Snippets para Delphi « 1 2 »
Programación General
crack81 15 5,713 Último mensaje 25 Marzo 2016, 18:39
por crack81
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines