Skip to content

Performance issues #106

@darrnshn

Description

@darrnshn
  • Malloc
    • mcmc::ChainArray::lastState (unnecessary copy on return) [ez fix]
    • mcmc::bouncyBounds (allocates a lot of matrices and vectors)
    • mcmc::ChainArray::append (copies the sample each time) [can we move the sample?]
    • mcmc::ChainArray::flushToDisk (copies last state and pushes to the back) [surely, we could implement as a deque that "clears" everything]
    • mcmc::Sampler::propose (copies proposal; converts to vector) [let requesters take views]
  • Switch to spdlog
    • el::base::Writer::initialize
    • el::base::RegisteredLoggers::get
    • pthread mutex lock (logger needs to lock for server, but not necessarily for agent?)
  • string copies/allocation/deallocation
    • Socket::send [send should have emplacement overloads,
      should take address by ref,
      but data by both ref and rvalue ref, initialize protocol objects from the internal socket buffer]
    • Socket::recv [recv should only ever allocate a buffer once (for the data),
      recv should return Message which is a view of the buffers,
      msg is only valid after recv,
      msg unserialisation should take views,
      to store stuff, copy from the view on demand]
    • onResult (clocks and message destructor) [emplacement send]
  • Heartbeat clocks [can we avoid updating the HB every single time we recv a msg?]

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions