Il est inutile le foreach dans l'exemple ainsi que la variable $copyHaystack.
Tout tableau est un tableau associatif en PHP.. Si la clé n'est pas déclarée, elle a la valeur de l'index. Il suffit de remplacer in_array dans l'exemple de l'article par isset, ça fonctionnera quand même =>
Pas de commentaires possibles dans la page, donc ici :
La clé d'un tableau est stockée comme hash, donc c'est probable que cela marche, mais le foreach convertissant d'un tableau en objet doit lui aussi être coûteux.
Ensuite, il n'y a aucune stat citée ou papier qui démontrent la différence de vitesse d'exé entre les deux snippets. Cela mériterait d'être testé à différentes tailles, avec des tableaux de 1000, 10.000 et 100.000 entrées.
Article très bizarre… Zemlin, le directeur de la Linux Foundation dit que c'est une « victoire », mais il n'explique pas vraiment en quoi c'est une victoire…
Je n'ai pas vraiment eu de problèmes mais plutôt des difficultés. La principale, c'est qu'il faut vraiment apprendre l'outil et que ça demande un peu de temps et d'effort.
Par exemple, l'organisation du système de fichiers est très différente du FHS : tu ne peux pas “installer vite-fait dans /usr/local/bin”, il faut définir un package qui installe proprement.
Une autre difficulté classique au début est le conflit de packages. Personnellement, je n'installe presque rien avec des “nix-env -iA”, seulement un paquet de “logiciels de tous les jours” que je définis dans “.config/nixpkgs/config.nix”. Quand je travaille sur un projet particulier, j'y écris un default.nix (dépendances, directives de construction…) et je lance un environnement correspondant avec un “nix-shell”.
Enfin le langage de description de paquets est assez particulier et sa “bibliothèque” assez grande, ce qui est un peu perturbant au début. Il y a de bonnes docs/blogs/wikis sur le net mais il faut les trouver (et les lire)…
Voilà, ce sont à peu près les seules difficultés, pour mon usage perso, du moins.
Comparer les binaires sous licence propriétaire de Microsoft qui peut injecter ce qu'il veut dedans, comme dans le cas de la plupart des binaires android (et chapeau au project exodus privacy) aux binaires distribués par la fondation mozilla sous Mozilla Public License qui est compatible avec la plupart des licences libres (et avec la GPL à une restriction près) n'a aucun sens.
Avec cette licence utilisée par Microsoft, il y a des restrictions quant à l'utilisation (interdit de pratiquer la rétro-ingénierie), à la distribution (interdit d'exporter dans certains pays). Microsoft se réserve le droit de récolter des données avec cette licence. Et bien d'autres choses, il suffit de parcourir la licence.
“share, publish, or lend the software, or provide it as a hosted solution for others to use, or transfer the software or this agreement to any third party. ” => t'as pas le droit de partager le binaire. Mais LOL quoi.
Bref, il est très important que les gens sachent que la licence des binaires qu'ils utilisent n'est PAS libre, ce qui est bien sûr le but de Microsoft. Et vu les réactions à l'article, la confusion semble total pour certains. On se doit d'être vigilant avec un acteur comme Microsoft, ce sont des spécialistes de la réduction des droits, ils ont quasiment inventé la license propriétaire et les restrictions qui vont avec.
Billet au titre racoleur pour rien de neuf et déjà pratiqué par d'autres : Firefox aussi est sur une licence limitative quand à l'usage du nom et du logo, Libre Office, et j'en passe.
C'est fait pour éviter qu'un tiers s'amuse à compiler le logiciel en y incluant des spywares/ransomware/cryptocurrencyware et le redistribue.
Méa culpa ! Merci de la modification
Je trouve aussi que c'est large niveau marques mais je vais laisser exceptionnellement. Par contre attention de pas remonter de la “documentation”.
Tcho !
@ins0 si tu passes ici, méfiance quand tu changes l'URL après coup ;)
Tcho !
Fort intéressant, je retiens le paragraphe Un revirement pour Microsoft aussi.
Tcho !
Euh, c'est juste ou moi, ou l'URL tombe sur une erreur 404 !!!
L'URL correcte semble plutôt être : https://hehackedmy.wordpress.com/2018/06/14/php-astuces-doptimisation/
Oh ! j'en découvre tous les jours ! Merci ! Mais du coup, psi la valeur est un autre tableau, une fonction, ou que sais-je ?
Il est inutile le foreach dans l'exemple ainsi que la variable $copyHaystack.
Tout tableau est un tableau associatif en PHP.. Si la clé n'est pas déclarée, elle a la valeur de l'index. Il suffit de remplacer in_array dans l'exemple de l'article par isset, ça fonctionnera quand même =>
$needle = ‘pim’;
$haystack = [‘pim’, ‘pam’, ‘poum’];
if(isset($needle, $haystack))
{
echo ‘Pim est présent’;
}
oui mais il manque le foreach qui construit le dictionnaire.
La réponse ici avec des stats => https://stackoverflow.com/questions/13483219/what-is-faster-in-array-or-isset
Ce tir sur GNU… mérité
Pas de commentaires possibles dans la page, donc ici : La clé d'un tableau est stockée comme hash, donc c'est probable que cela marche, mais le
foreachconvertissant d'un tableau en objet doit lui aussi être coûteux. Ensuite, il n'y a aucune stat citée ou papier qui démontrent la différence de vitesse d'exé entre les deux snippets. Cela mériterait d'être testé à différentes tailles, avec des tableaux de 1000, 10.000 et 100.000 entrées.Pas de binaire compatible sur linux ? C'est dommage…
Ah oui exact ! Je vais voir pour remonter l'info au dev, merci ;-)
Article très bizarre… Zemlin, le directeur de la Linux Foundation dit que c'est une « victoire », mais il n'explique pas vraiment en quoi c'est une victoire…
Je n'ai pas vraiment eu de problèmes mais plutôt des difficultés. La principale, c'est qu'il faut vraiment apprendre l'outil et que ça demande un peu de temps et d'effort.
Par exemple, l'organisation du système de fichiers est très différente du FHS : tu ne peux pas “installer vite-fait dans /usr/local/bin”, il faut définir un package qui installe proprement.
Une autre difficulté classique au début est le conflit de packages. Personnellement, je n'installe presque rien avec des “nix-env -iA”, seulement un paquet de “logiciels de tous les jours” que je définis dans “.config/nixpkgs/config.nix”. Quand je travaille sur un projet particulier, j'y écris un default.nix (dépendances, directives de construction…) et je lance un environnement correspondant avec un “nix-shell”.
Enfin le langage de description de paquets est assez particulier et sa “bibliothèque” assez grande, ce qui est un peu perturbant au début. Il y a de bonnes docs/blogs/wikis sur le net mais il faut les trouver (et les lire)…
Voilà, ce sont à peu près les seules difficultés, pour mon usage perso, du moins.
Comparer les binaires sous licence propriétaire de Microsoft qui peut injecter ce qu'il veut dedans, comme dans le cas de la plupart des binaires android (et chapeau au project exodus privacy) aux binaires distribués par la fondation mozilla sous Mozilla Public License qui est compatible avec la plupart des licences libres (et avec la GPL à une restriction près) n'a aucun sens.
Avec cette licence utilisée par Microsoft, il y a des restrictions quant à l'utilisation (interdit de pratiquer la rétro-ingénierie), à la distribution (interdit d'exporter dans certains pays). Microsoft se réserve le droit de récolter des données avec cette licence. Et bien d'autres choses, il suffit de parcourir la licence.
“share, publish, or lend the software, or provide it as a hosted solution for others to use, or transfer the software or this agreement to any third party. ” => t'as pas le droit de partager le binaire. Mais LOL quoi.
Bref, il est très important que les gens sachent que la licence des binaires qu'ils utilisent n'est PAS libre, ce qui est bien sûr le but de Microsoft. Et vu les réactions à l'article, la confusion semble total pour certains. On se doit d'être vigilant avec un acteur comme Microsoft, ce sont des spécialistes de la réduction des droits, ils ont quasiment inventé la license propriétaire et les restrictions qui vont avec.
Billet au titre racoleur pour rien de neuf et déjà pratiqué par d'autres : Firefox aussi est sur une licence limitative quand à l'usage du nom et du logo, Libre Office, et j'en passe. C'est fait pour éviter qu'un tiers s'amuse à compiler le logiciel en y incluant des spywares/ransomware/cryptocurrencyware et le redistribue.
C’est pourquoi nous avons pris la décision de stopper le développement d’hubiC et de suspendre la création de nouveaux comptes : https://www.ovh.com/fr/fin-inscription-hubic/
Tcho !
La réponse ici: https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005 :)
Je suis arrivé là-dessus depuis la licence (https://code.visualstudio.com/license) puis FAQ !