3 ms·
If you keep them as separated independent steps, it may be possible to pipeline the processing over multiple cores (that is, while one core performs step one on
by dkersten 14y ago
If you keep them as separated independent steps, it may be possible to pipeline the processing over multiple cores (that is, while one core performs step one on the next pattern, step two is being performed on another core on the previous pattern)[1]. If this is possible, it may be possible to offset the performance benefits that a monolithic approach would have.
But as sillysaurus says, architecture over performance until performance becomes an issue. Multicore pipelining is a performance optimisation, so its something I would read up on to be prepared for it, but don't try it until you feel you need more performance. Also don't try build it yourself - use a library. Finally, if that still doesn't give you the performance you need, start thinking about merging components together. Profile before thinking too much about performance (but by all means, keep performance in mind so your architecture can be modified to be higher performance later).
[1] If you're using C++, I personally recommend http://threadingbuildingblocks.org/ http://threadingbuildingblocks.org/ If you're using another language, it may still be worth taking a peek at the documentation (especially the section on pipelines) to get a feel for what I mean.