Ich habe eine Funktion, die 2 Zeichenketten durch Zeichen vergleicht. Ich brauchte es viel schneller als in Ruby, also habe ich RubyInline verwendet, um die Funktion in C neu zu schreiben. Es hat die Geschwindigkeit um das 100-fache erhöht. Die Funktion sieht so aus:Wie konvertiert man Ruby-Array mit RubyInline in C-Array?
require 'inline'
inline do |builder|
builder.c "
static int distance(char *s, char *t){
...
}"
end
aber ich muss Unicode-Strings vergleichen. Also entschloss ich mich, unpack ("U *") zu verwenden und Arrays von ganzen Zahlen zu vergleichen. Ich kann aus einer spärlichen Dokumentation zu RubyInline nicht herausfinden, wie man die Ruby-Arrays in die Funktion übergibt und wie man sie in C-Arrays umwandelt. Jede Hilfe wird geschätzt!
Kein Problem, lass mich wissen wie es sich entwickelt. Würde gerne Ihre Implementierung sehen, wenn Sie fertig sind. –
Hier ist der Code von damerau_levenshtein Entfernung: http://gist.github.com/147023 für Ruby 1.8.7 funktioniert wie ein Charme, aber Drosseln auf Rubin 1.9.1 – dimus
I aktualisiert http: // Kern. github.com/147023 auch mit 1.9.1 Ruby zu arbeiten mit Hilfe von thnetos – dimus