Class: RDF::Benchmark::Repository

Inherits:
Object
  • Object
show all
Defined in:
lib/rdf/benchmark/repository.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(generator:, repository:) ⇒ Repository

Returns a new instance of Repository.

Parameters:

  • generator (#data)
  • repository (RDF::Repository)

    the repository to benchmark



11
12
13
14
# File 'lib/rdf/benchmark/repository.rb', line 11

def initialize(generator: , repository:)
  @generator  = generator
  @repository = repository
end

Instance Attribute Details

#repositoryRDF::Repository

Returns the repository to benchmark.

Returns:

  • (RDF::Repository)

    the repository to benchmark



6
7
8
# File 'lib/rdf/benchmark/repository.rb', line 6

def repository
  @repository
end

Instance Method Details

#delete!(name: 'delete', count: 100_000) ⇒ Benchmark::IPS::Report

Parameters:

  • name (#to_s) (defaults to: 'delete')

    the name to give the benchmark report

  • count (Integer) (defaults to: 100_000)

    number of statements to prime for delete

Returns:

  • (Benchmark::IPS::Report)


44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/rdf/benchmark/repository.rb', line 44

def delete!(name: 'delete', count: 100_000)
  deletes = statements.lazy.take(count)

  deletes.each { |st| repository.insert(st) }

  report = RDF::Benchmark.benchmark_ips!(name: name) do
    repository.delete(deletes.next)
  end
  
  return report
ensure 
  repository.clear
end

#insert!(name: 'insert', count: 100_000) ⇒ Benchmark::IPS::Report

Parameters:

  • name (#to_s) (defaults to: 'insert')
  • count (Integer) (defaults to: 100_000)

    number of statements to prime for insert

Returns:

  • (Benchmark::IPS::Report)


27
28
29
30
31
32
33
34
35
36
37
# File 'lib/rdf/benchmark/repository.rb', line 27

def insert!(name: 'insert', count: 100_000)
  inserts = statements.lazy.take(count)
  
  report = RDF::Benchmark.benchmark_ips!(name: name) do
    repository.insert(inserts.next)
  end
  
  return report
ensure 
  repository.clear
end

#statementsRDF::Enumerator

Returns:

  • (RDF::Enumerator)


18
19
20
# File 'lib/rdf/benchmark/repository.rb', line 18

def statements
  @generator.data.each_statement
end