Biblioteca de clases genéricas - errores, descripción, preguntas, características de uso y sugerencias - página 15

 
Vasiliy Sokolov:

La solución del diccionario propuesta tiene varias ventajas, la más importante de las cuales no es del todo evidente a primera vista. Cuando escribimos un código como este:

Estamos conectados con el código del Asesor Experto en sí mismo. Cuando llenamos el diccionario, lo hacemos de forma dinámica, es decir, en el momento de la ejecución del programa. El enfoque dinámico nos da más flexibilidad. Por ejemplo, los códigos de error pueden estar contenidos en un archivo especial, por ejemplo, ErrorsCode.txt:

En el momento del lanzamiento el programa puede leer este archivo y llenar el diccionario con los códigos requeridos y luego devolver la variante requerida de la cadena al usuario. Puede haber varios archivos de este tipo: un archivo por idioma. De este modo, se puede realizar una localización, en la que se muestran los códigos de error en el idioma del usuario, en función del mismo. Además, el propio usuario puede traducir estos códigos de error a su propio idioma una vez, y el propio programa "aprende" a emitir el mensaje deseado en su idioma. Así es como se localizan la mayoría de los programas, cuando la traducción de un menú está contenida en un archivo de texto y el programa la carga, dependiendo de la configuración. Es decir, sin necesidad de recompilar el programa y sin cambiar su algoritmo, podemos influir significativamente en la representación de sus resultados.

Comprende, que tales "localizaciones" se hacen perfectamente sin HashMap. Es decir, de nuevo, sólo la velocidad de búsqueda es una ventaja. Pero en esta tarea no lo necesitas en absoluto.

Es decir, debe haber una tarea que muestre una ventaja práctica en forma de reducción del tiempo de optimización. Otros ejemplos serán siempre muy privados e igual de cuestionables. Pero el Optimizador, no se puede discutir.

 
fxsaber:

Te das cuenta de que esas "localizaciones" se hacen perfectamente sin HashMap. Es decir, de nuevo, la única ventaja es la velocidad de búsqueda aquí. Pero en esta tarea en la práctica no es necesario en absoluto.

Es decir, debe haber una tarea que muestre una ventaja práctica en forma de reducción del tiempo de optimización. Otros ejemplos serán siempre muy privados e igual de cuestionables. En cuanto al optimizador, no se puede discutir.

La cuestión en este caso no es la velocidad. Pero en el ejemplo - por así decirlo "entender" la esencia. Y dónde aplicar esta "esencia" es otra cuestión.

 
Artyom Trishkin:

En este caso no se trata de la velocidad. Se trata del ejemplo -por así decirlo- de "entender" la esencia. Y dónde aplicar esta "esencia" es otra cuestión.

Yo tengo una percepción ligeramente diferente.

 

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Algoritmos, métodos de decisión, comparación de su rendimiento

Sergey Dzyublik, 2017.12.11 10:41

En esta tarea concreta: índice => valor
Sería más rápido utilizarCArrayList queCHashMap.

CArrayList ocupa más del doble de espacio, también tiene menos reordenamientos cuando se añaden nuevos elementos(CArrayList tiene 2 factores de crecimiento, mientras queCHashMap tiene alrededor de 1,2 en la implementación actual).
Y hay menos problemas al leer el resultado deCArrayList.

Todavía no lo he entendido, a pesar de las explicaciones. Mi propio analfabetismo me lo impide. No me he atrevido a meterme en las tripas de las bibliotecas - el estilo de implementación/abstracción me repugna. Pero tendré que hacerlo, supongo.

 
fxsaber:

Yo tengo una percepción ligeramente diferente.

Lo secundo. Hay muchas cosas geniales en el mundo, pero no todas son necesarias para comerciar. Así es esta biblioteca. ¿Qué le da al comerciante?

(Repito la pregunta, porque o no se ha notado o nadie sabe por qué un comerciante lo necesita)

 
fxsaber:

A pesar de las explicaciones, esto aún no se ha entendido. Mi propio analfabetismo es un obstáculo. Todavía no me he atrevido a meterme en las tripas de las bibliotecas, el estilo de implementación/abstracción me repugna. Pero tendré que hacerlo, supongo.


Si quieres, puedo describir brevemente la arquitecturade la implementaciónde CHashMap- no es trivial.

 
Alexey Oreshkin:

Apoyado. Hay muchas cosas geniales en el mundo, pero no todas son necesarias para comerciar. Así es esta biblioteca. ¿Qué le aporta al comerciante?

(Repetiré esta pregunta una vez más, porque o bien no se ha tenido en cuenta o bien nadie sabe por qué lo necesita un comerciante)


Los contenedores ofrecen a las personas versadas en estructuras de datos una cómoda interfaz para el procesamiento rápido de un determinado conjunto de datos.
En muchos lenguajes de programación los contenedores son parte integrante y están directamente integrados en el propio lenguaje.
Que no sepas utilizar algo no significa que sea inconveniente o innecesario.

 
Sergey Dzyublik:

Si está interesado, puedo describir brevemente la arquitectura de la implementación deCHashMap- no es trivial.

Interesante. Y aquí hay una pregunta. No me gustaba la implementación actual y la he retocado. Por supuesto, está torcido. ¿Cómo puedo conseguir la biblia original?

 
Sergey Dzyublik:


Los contenedores ofrecen a las personas que entienden de estructuras de datos una interfaz conveniente para procesar rápidamente una determinada cantidad de datos.
En muchos lenguajes de programación, los contenedores son una parte integral y están directamente integrados en el propio lenguaje.
El hecho de que no sepas utilizar algo no significa que no sea conveniente o útil.

No digo que no sea útil. Me interesa cómo puede ayudar en el comercio. Exactamente en el comercio. Y no en la programación de caballos esféricos en el vacío. Si escribieran un software para estaciones meteorológicas en µl que mostrara las previsiones del tiempo, no habría duda, está claro que es simplemente necesario y cómo y dónde se puede aplicar.
¿Puede alguien dar una respuesta concreta sobre el comercio?
 
Alexey Oreshkin:
¿Quién me dará una respuesta concreta sobre el comercio?

¿Es importante la velocidad del probador para el comercio? Si es así, entonces HashMap también afecta a la negociación, porque aumenta la velocidad de desarrollo y ejecución de la ST.

Razón de la queja: