func TestXxx(*testing.T)
Que añaden dentro luego un for, pero en mi caso me gustaría testear la goroutines, es decir, dentro de mi funcion main()
hago uso de mis canales y las goroutines (sus funciones están arriba del main)
Un ejemplo:
func main() {
ir_cs := make(chan string)
venir_cs := make(chan string)
go conduciendo_al_trabajo(ir_cs, "conduciendo", 5)
go conduciendo_vuelta_trabajo(venir_cs, "vuelta", 5)
go estancia_en_trabajo(ir_cs, venir_cs)
time.Sleep(2 * 1e9)
}
¿Cómo mediríais aquí los tiempos?
func TestXxx(*testing.T) * Time make * Time gotest *
^Gracias por leer.
--
---
Has recibido este mensaje porque estás suscrito al grupo "golang-spanish" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a golang-spanis...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
Por la tarde me lo intento mirar mejor, pero ahora solo se me ocurre que no debes tener bien puesto el nombre al archivo.
No sé si eso afecta pero mi prueba_test.go se llamaba exactamente así (creo que es importante que acabe en "_test.go") y estaba donde debería estar un package prueba, es decir, en $GOPATH\src\prueba\ (usas Windows, ¿no?).
Hola,
La estructura de directorios yo todavía no la tengo por la mano pero aparentemente es la clave del error.
Lo del warning es porque en realidad no hemos puesto ningún test.
Los test aparentemente son testXxx, nosotros hemos puesto un benchmarkXxx.
Entiendo que los test son para probar si las funcionalidades de un package son correctas y en cambio los benchmark son para evaluar su rendimiento. Que alguien me corrija si me equivoco.
Puesto que querías una manera de medir tiempo pensé que un benchmark era más adecuado.
De todos modos hemos hecho trampa porque no estamos evaluando el tiempo de un package, estamo metiendo todo el programa en la función de benchmark.
Saludos,
PS: Lo de Windows era porque me ha sorprendido que pusieras el prompt acabando en ">", que parece más propio de MS-DOS que de un "linux" (yo esperaría un "$" o incluso "#" si te gusta el riesgo).
--
Un double debe ser un decimal de 64, creo
En Go eso es float64.
Para hacer la reserva de espacio que pones (malloc) yo usaría slices, pero dependiendo de lo que quieras hacer una slice del tamaño total o una slice de slices.
1)
M:=make([]float64,tamaño)
o
2)
M:=make([][]flota64,n_col)
y en un for hasta n_col
M[i]=make([]float64,(ncol-1)/2)
Si fueran tamaños fijos podrías
var M [m][n]float64
Pero no parece tu caso :(
:)
func testeando_matriz() {
defer from(time.Now())
for j := i; j < n_A; j++ {
...
}
}
testeando_matriz()
(dj abr 04) *Inés* > go run medicionMatriz.go 1000
2000
720855000
(dj abr 04) *Inés* > go run medicionMatriz.go 1000
2us
725.362ms
Hola,
Yo considero que pasar de 60s a 90s es un 50% más lento.
Para hablar del 30% diría que el programa de C es un 30% más rápido que el de Go.
Es un tema de convenciones (cuál ponemos como base de comparación) y yo no lo he consensuado con nadie, no sé si mi punto de vista es correcto y/o compartido…
Podríamos preguntar la opinión del resto de Gophers. Me parece una encuesta interesante ;)
¿Alguien se anima a dar su opinión?