Как я быстро нарезаю и ставлю на карту большие файлы данных?

Для разработчиков VB.NET:

Добавьте следующую строку в файл Glabal.asax.vb, в конце метода Application_Start ()

Database.SetInitializer(Of ApplicationDbContext)(Nothing)

Измените ApplicationDbContext на ваш конкретный контекст Db.

5
задан Hrqls 4 June 2014 в 10:26
поделиться

4 ответа

Для почему бы не объединения их вместе - использование сокращения, чтобы сделать, что это прилагает все усилия и рубин для обеспечения связующего звена/значения добавляет с результатами CUT? можно выполнить сценарии оболочки путем помещения их в обратные галочки как это:

puts `cut somefile > foo.fil`
# process each line of the output from cut
f = File.new("foo.fil")
f.each{|line|
}
1
ответ дан 15 December 2019 в 01:15
поделиться

Этот вопрос напоминает мне о Широком проекте Средства поиска Tim Bray. Самым быстрым путем он мог считать файл журнала Apache с помощью Ruby и фигуры, какие статьи были выбраны, больше всего был с этим сценарием:

counts = {}
counts.default = 0

ARGF.each_line do |line|
   if line =~ %r{GET /ongoing/When/\d\d\dx/(\d\d\d\d/\d\d/\d\d/[^ .]+) }
     counts[$1] += 1
   end
end

keys_by_count = counts.keys.sort { |a, b| counts[b] <=> counts[a] }
keys_by_count[0 .. 9].each do |key|
    puts "#{counts[key]}: #{key}"
end

Этому коду потребовались 7½ секунд ЦП, 13½ секунд протекли, для обработки миллиона и записей изменения, приблизительно одна четверть концерта, на прошлогоднем PowerBook на 1.67 ГГц.

2
ответ дан 15 December 2019 в 01:15
поделиться

Я предполагаю, что Ваши реализации Ruby читают весь файл до обработки. Сокращение Unix работает путем чтения вещей один байт за один раз и сразу дампа к выходному файлу. Существует, конечно, некоторая включенная буферизация, но не больше, чем некоторые КБ.

Мое предложение: попытайтесь делать обработку, оперативную с как можно меньшей подкачкой страниц или отслеживанием в обратном порядке.

1
ответ дан 15 December 2019 в 01:15
поделиться

Я сомневаюсь, что проблема состоит в том, что рубин читает целый файл в памяти. Посмотрите на использование памяти и использование диска при выполнении команды для проверки.

Я предположил бы, что главная причина состоит в том, потому что сокращенный записан в C и только делает одну вещь, таким образом, это имеет, вероятно, быть скомпилированным вниз в очень металлическое. Это, вероятно, не делает намного больше, чем вызов системных вызовов.

Однако рубиновая версия делает много вещей сразу. Вызов метода намного медленнее в рубине, чем вызовы функции C.

Помните старость и молодежь удара предательства и навык в Unix: http://ridiculousfish.com/blog/archives/2006/05/30/old-age-and-treachery/

0
ответ дан 15 December 2019 в 01:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: