J'ai une fonction qui compare 2 chaînes char par char. J'avais besoin que ça tourne beaucoup plus vite que dans Ruby, donc j'ai utilisé RubyInline pour réécrire la fonction en C. Elle a augmenté la vitesse d'environ 100 fois. La fonction ressemble à ceci:Comment convertir un tableau ruby en tableau C avec RubyInline?
require 'inline'
inline do |builder|
builder.c "
static int distance(char *s, char *t){
...
}"
end
Cependant, j'ai besoin de comparer les chaînes Unicode. J'ai donc décidé d'utiliser unpack ("U *") et de comparer des tableaux d'entiers à la place. Je ne peux pas comprendre à partir d'une documentation rare à RubyInline comment passer les tableaux ruby dans la fonction et comment les convertir en tableaux C. Toute aide est appréciée!
Pas de problème, Tiens-moi au courant de ce que ça devient. J'adorerais voir votre mise en œuvre une fois terminé. –
Voici le code de la distance de damerau_levenshtein: http://gist.github.com/147023 Ruby 1.8.7 fonctionne comme un charme, mais selfs sur Ruby 1.9.1 – dimus
je mis à jour http: // essentiel. github.com/147023 de travailler avec 1.9.1 ruby ainsi en utilisant l'aide de thnetos – dimus