Jump to content
fabriceN

Message personnel pour A.B. ;)

Recommended Posts

JSONListKeys ( JSONSetElement ( "[]" ; 10^6 ; "toto" ; 1 ) ; "" )

(à 10^7 ça commence à faire la gueule, à 10^8 c'est mort, à 10^9 FM plante)

Share this post


Link to post
Share on other sites

Tu m'as appelé ?

Mal tombé je peux te garantir, à part le résultat 10^9 qui me plait parce que cela veut dire que tu fais quelque chose de pas catholique, je ne sais même pas ce que ces fonctions sont sensées faire ;)

Tu fais quoi, une liste de clefs au format Jason ?
Ya moyen de remplacer CL ?

J'ai un problème de temps en ce moment ;)
Mais le coeur y est ;)

Agnès

 

 

Share this post


Link to post
Share on other sites

Bop !

Non, il a même fallut que j’arrête de faire la kekoss et que je fasse en plus une base en express pour gérer au moins les expéditions et le stock, en FM16 s'il vous plait.

Me suis fait dévaliser :ph34r::rolleyes::P

Share this post


Link to post
Share on other sites

Ok Enorme :)

Je viens de faire un copier coller de ta formule dans le DataV :)

Sans changer le ^6 ;)

Share this post


Link to post
Share on other sites

hello
ça doit dépendre des bécanes :
10^4 ok
10^5 c'est un peu long mais ça vient
10^6 j'ai abandonné au bout de 10 mn

Share this post


Link to post
Share on other sites

Intéressant. Quelle bécane ?

Share this post


Link to post
Share on other sites

Chez moi, j'ai l'impression qu'il y a une énorme différence de performance entre Mac et Windows, sans que la puissance de l'ordinateur change tant que ça.

Share this post


Link to post
Share on other sites

Ca tourne mieux sous MAC je dirais à faire le test, à 10^8 ca swap sévère même avec 16 Go de RAM mais avant c'est plutot rapide

 

 

Share this post


Link to post
Share on other sites

eh ben et alors elle est où cette nouvelle version de customlist ?

ça traîne, ça traîne…

Share this post


Link to post
Share on other sites

Je l'ai, mais au moins la première version est un peu lente pour être intéressante... Je ne sais pas encore pourquoi.

Share this post


Link to post
Share on other sites
Le 13/07/2017 à 11:07, fabriceN a dit :

eh ben et alors elle est où cette nouvelle version de customlist ?

ça traîne, ça traîne…

M'énerve ! Si David s'en mêle en plus :)

Bon, j'ai jeté un oeil mais juste un.

Je ne suis pas sûre que ça gagne en timing

En fait, cela devient un mélange de CL1 & CL2

Dans la 2, j'avais viré la liste numérique pour faire tourner CL via des $CLnum = $CLnum + 1, la liste se construit donc au fur et à mesure des besoins

Dans la V1, le calcul se construisait autour d'une liste numérique via des substitute puis était intégré par des MiddleValues de 1700

Bref ;)

Vous essayez ça ? ya pas les codes error et toussatoussa, je ne suis pas sûre que la 1 seconde gagnée vaille vraiment le coup et le coût ;)

Let ([

//---Variable CL

Start = 5 ;

End = 17 ;

Function = "GetValue ( $Li ; [n] ) & [n]"

];

Case ( isEmpty ( Start ) Or isEmpty ( End ) Or End < 1 Or Start < 1; "";

          

            Let ( [

                         Start =  GetAsNumber ( Start );

                         End =   GetAsNumber ( End );

                         Diff = End - Start + 1;

                         LS = JSONListKeys ( JSONSetElement ( "[]" ; End ; "CL" ; 1 ) ; "" ) ;

                         L = Substitute ( RightValues ( LS ; Diff ) & "e" ; "¶e" ; "" ) ;

                         V =  Case ( Left ( Get ( ApplicationVersion ) ; 2 ) = "Go" ; 1 ; Left ( Get ( ApplicationVersion ) ; 2 ) = "Se" ; 2 ; Left ( Get ( ApplicationVersion ) ; 2 ) = "We" ; 3 ; 0 ) ;

                         PL = Choose ( V ; 1700  ; 400 ; 300 ; 900 ) ;

              End =   Case ( ( Diff > Choose ( V ; 500000  ; 150000 ; 120000 ; 250000 ) ) Or ( End < Start ) Or isEmpty ( Start ) Or isEmpty ( End ); "Error"; End );

              $null = "\"\"";

              X = Floor ( ( End - Start + 1 ) / PL ) ;

              iter = Let ( $CLExeCount = $CLExeCount + 1 ; $CLExeCount & PatternCount ( Function ; "CustomList" ) + 1 ) ;

              

              FunctionR = Case ( isEmpty ( Function ); "CLNum"; Substitute ( Function; ["[n]"; "CLNum"] ; [¶ ; ""] ) ) ;

$R[ iter ] = "Let (CLNum = " & Substitute ( L ; ¶ ; "; " & FunctionR & ")& \¶ & ¶Let (CLNum = " ) & "; " & FunctionR & ")& \¶ &";

M = "Evaluate( MiddleValues ($R[" & iter & "]; (" &

Substitute ( Substitute ( leftvalues ( LS ; X + 1 ) & "e" ; "¶e" ; "" ) ; ¶ ; " * 10 ) +1 ; 10 ) & $null ) &¶Evaluate( MiddleValues ($R[" & iter & "];( ") &

" * 10 )+1 ; 10 ) & $null )"

]; Evaluate ( M )

)))

 

A voir après tests ce que donnerait des CL imbriquées, la variable $R[ iter ]  sera a vider sans risque de heurt

Bref, vous me testez à fond avant d'en faire un vrai truc hein, je ne pense pas que la rapidité soit au rendez vous, un chouilla certainement

Fabrice, pourrais tu me détailler ton toto et ton 1 stp ? la je mets un RightValues pour cibler la liste entre le start et le end mais ya peut être mieux

Agnès :)

 

Edit, Rigolo quand même car la variable M et $R[ iter ]  sont exactement ce que je cherchais en 2007 pour que CLv1 n'est pas de plafond :)

 

 

 

Share this post


Link to post
Share on other sites

J'ai laissé tombé pour l'instant. Même si le point de départ est tentant, je ne suis pas convaincu de la possibilité d'un gain en performance, ou de la capacité (au niveau du nombre d'itérations). Surtout pas avec le souci sur Windows au niveau de la création de la liste. Mais c'est quand même une piste à garder - peut-être surtout pour les cas simples où on n'a besoin du [n] qu'une seule fois.

Share this post


Link to post
Share on other sites

Oui, je le vois plutôt pour l'utiliser au lieu du Substitute ( 10 ^ n mais il faut toujours faire attention aux limites d'Evaluate, la complexité de CL n'est pas du tout dans le montage de la liste numérique ou celui du calcul préparé à  l'évaluation, mais bien l'obligation de découper l'ensemble par paquet pour l'évaluation, sans perdre un n° ou une ligne au passage.

Fabrice ????? ça traine ça traine !!
:P

Share this post


Link to post
Share on other sites

Agnès - Est-ce que tu as déjà essayé d'utiliser une fonction recursive pour appeler une version de Custom tranche par tranche ?

Share this post


Link to post
Share on other sites

Nope, je suis contre la récursion ;)

( oui on avait essayé à l'époque, on perdait grandement en perf, cela ne doit plus être vrai maintenant )

Share this post


Link to post
Share on other sites

Par curiosité, avec un End a 15000 et Function vide.... il est mieux de laisser cette version grandement de coté, temps d’exécution multiplié par xX voire plus, c'est logique.

( ici, la variable $R[ iter ] est obligée de constituer une liste de 17000 lignes que la 2eme variable evalue par paquet
alors que dans CustomList(), la liste est seulement de 1700 lignes )

 

Ou alors, il faut juste "brider" la liste à 1700 obtenue via les fonctions JSon pour remplacer 1 ou 2 lignes dans CL, mais ça ne changera pas la perf de la V2, ça enlèvera 1 variable simplement

A garder sous le coude pour d'aut'chose ;)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...