Przypisywanie - duże zużycie pamięcie

Hej,
mam sobie skrypt parsujący plik CSV:

[code=ruby]require ‘csv-mapper’
include CsvMapper

def parse_csv( file )
$parsed_csv = import(file) do
delimited_by “;”
parser_options :quote_char => “”"
start_at_row 1
[id_mix, nazwa, rodzaj, typ, marka, cena_hurt, vat, opis, dostepny, cena_hurt_b, ean, wykluczony1, aktywny]
end
$parsed_csv
end[/code]
I dziwny problem. Jeśli robię tak:

parse_csv('plik.csv');"" array = $parsed_csv
to pierwsza linijka wykonuje się ok 120 sekund i lekko zwalnia komputer. To możliwe, zważywszy, że plik zawiera ok 13500 linii.

ale już tak:

array = parse_csv('plik.csv');""

To komputer zaczyna zwalniać - zużycie pamięci jest tragiczne, potrafi mielić przez 20 minut i nic z tego nie wynika.

Ktoś wie może, czemu tak jest?

Sławosz

Na razie działa lepiej tak:

[code=ruby]require ‘csv-mapper’
include CsvMapper

def parse_csv( file )
GC.start
$parsed_csv = import(file) do
delimited_by “;”
parser_options :quote_char => “”"
start_at_row 1
[id_mix, nazwa, rodzaj, typ, marka, cena_hurt, vat, opis, dostepny, cena_hurt_b, ean, wykluczony1, aktywny]
end
GC.start
$parsed_csv
end[/code]
Jeszcze będę walczył :wink:

A próbowałeś użyć gema fastercsv? (http://rubygems.org/gems/fastercsv )

CsvMapper jest wrapperem na fastercsv. I rzeczywiście, zacząłem używać tylko fastercsv i problem zniknąl :slight_smile: