J'ai une structure de données que j'ai chargé dans de JSON qui ressemble au-dessousjulia: des moyens efficaces pour des réseaux VCAT n
json_in =
[ Dict("customer" => "cust1", "transactions" => 1:10^6)
, Dict("customer" => "cust2", "transactions" => 1:10^6)
, Dict("customer" => "cust3", "transactions" => 1:10^6)]
Je connais deux méthodes pour réduire la transactions dans un réseau
@time methodA = reduce(vcat,[cust["transactions"] for cust in json_in])
@time methodB = vcat(json_in[1]["transactions"],json_in[2]["transactions"],json_in[3]["transactions"])
Cependant, le timing de la méthode A est ~ 0.22s vs ~ 0.02s pour methodB sur mon ordinateur. J'ai l'intention d'effectuer cela des milliers de fois, donc une performance 10 fois plus rapide est une grosse affaire.
Je vois que la méthode B n'est pas très robuste car elle ne peut traiter que 3 Dicts (clients) donc même si elle est performante elle ne généralise pas.
Quel serait le moyen le plus efficace de concaténer efficacement des tableaux qui sont des éléments d'un tableau de Dict?
Indice: ne pas référencer dans un contexte global. Vous pouvez également utiliser 'mapreduce (x-> x [" transactions "], vcat, json_in)' au lieu de 'reduce + comprehension'. – Gnimuc
Copie possible de [Vitesse d'exécution de Julia] (https://stackoverflow.com/questions/44263741/julia-speed-of-execution) – Gnimuc
Aussi, ma propre question (sans réponse) pourrait vous intéresser (contient un code pertinent): [Lecture tableau JSON en type Julia DataFrame] (https://stackoverflow.com/questions/46143997/reading-json-array-into-julia-dataframe-like-type) –