Autor |
Mensaje |
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Cuantas Veces Se Repite Una Cadena En Otra.
supongo que C siempre es mas eficiente que gambas.
...más rapido.
mucho mas, C es 10 veces mas rapido que gambas + Fast y 1000 veces que gambas solo
¿Que es gambas + Fast?
Saludos.
|
#21 Jueves, 07 May 2020, 16:39 |
|
|
tercoIDE
Analista Programador
Registrado: Noviembre 2013
Mensajes: 713
Edad: 54
|
Re: Cuantas Veces Se Repite Una Cadena En Otra.
http://gambaswiki.org/wiki/doc/jit
traduce codigo gambas a C en runtime y lo corre de esa manera
=================== "Los IF son mas rápidos" - autor anónimo
|
#22 Jueves, 07 May 2020, 17:03 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Cuantas Veces Se Repite Una Cadena En Otra.
http://gambaswiki.org/wiki/doc/jit
traduce codigo gambas a C en runtime y lo corre de esa manera
Ok, gracias.
|
#23 Jueves, 07 May 2020, 17:25 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Cuantas Veces Se Repite Una Cadena En Otra.
...y no quiero hablar de la velocidad de Assembly !
|
#24 Viernes, 08 May 2020, 00:18 |
|
|
tercoIDE
Analista Programador
Registrado: Noviembre 2013
Mensajes: 713
Edad: 54
|
Re: Cuantas Veces Se Repite Una Cadena En Otra.
Por ejemplo, creando una función externa:
Library "/tmp/lib_Occorrenze"
' int Occorrenze(const char *stringa, const char *substr)
' Ritorna il numero di occorrenze di una sottostringa all'interno di una stringa.
Private Extern Occorrenze(stringa As String, substr As String) As Integer
Public Sub Main()
Dim s, su As String
Dim i As Integer
' Va a generare l'apposita libreria dinamica condivisa esterna:
CreaSo()
' La stringa è la seguente:
s = "mela pera arancia limone pera banana noce mela fico pera noce"
' La sottostringa di cui conoscere il numero di occorrenze:
su = "pera"
i = Occorrenze(s, su)
Print "Numero occorrenze della sottostringa '"; su; "': "; i
End
Private Procedure CreaSo()
' Imposta il sorgente della libreria dinamica condivisa esterna:
File.Save("/tmp/lib_Occorrenze.c", "#include <string>" &
"\n\n" &
"int Occorrenze(const char *stringa, const char *substr) {" &
"\n\n" &
" int i = 0;" &
"\n\n" &
" do {\n" &
" stringa = strstr (stringa, substr);\n" &
" if (stringa) {;\n" &
" ++stringa;\n" &
" ++i;\n" &
" }else{\n break;\n }" &
"\n }\n" &
" while (stringa);" &
"\n\n" &
" return i;\n\n}")
' Genera la libreria dinamica condivisa esterna:
Shell "gcc -o /tmp/lib_Occorrenze.so /tmp/lib_Occorrenze.c -shared -fPIC" Wait
End
Esto que hizo el topo, es EXACTAMENTE como funciona OpenGL hoy en dia:
La CPU le envia codigo C en forma de String a la GPU para que se ocupe de los graficos con su poder de procesamiento, liberando a la cpu para otras tareas. Estoy estudiando el tema para aplicarlo al CAD
=================== "Los IF son mas rápidos" - autor anónimo
|
#25 Viernes, 08 May 2020, 15:41 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Cuantas Veces Se Repite Una Cadena En Otra.
TercoIde:
Citar: Estoy estudiando el tema para aplicarlo al CAD
Ohhh.... super interesante....
|
#26 Sabado, 09 May 2020, 10:23 |
|
|
cogier
Charlie Ogier
Aprendiz
Registrado: Septiembre 2018
Mensajes: 99
Edad: 69 Ubicación: Guernsey, Channel Islands
|
Re: Cuantas Veces Se Repite Una Cadena En Otra.
Aquí hay una versión simple.
|
#27 Lunes, 11 May 2020, 14:24 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Cuantas Veces Se Repite Una Cadena En Otra.
Aquí hay una versión simple.
Yo, sin embargo, introduciría estas modificaciones:
última edición por vuott el Lunes, 11 May 2020, 16:03; editado 1 vez
|
#28 Lunes, 11 May 2020, 15:59 |
|
|
|