我正在使用多个线程在C中实现图像过滤操作,并使其尽可能优化.我有一个问题:如果一个内存被thread-0访问,并且如果同一个内存被thread-1访问,它是否会从缓存中获取它?这个问题源于这两个线程可能运行到CPU的两个不同核心的可能性.所以另一种方法是:所有内核是否共享相同的公共缓存?
假设我有如下的内存布局
int输出[100];
假设有2个CPU核心,因此我产生两个线程同时工作.一种方案可以是将内存分成两个块,0-49和50-99,并让每个线程在每个块上工作.另一种方法是让线程0在偶数索引上工作,比如0 2 4等等.而另一个线程工作在奇数索引上,比如1 3 5 ......这个后来的技术更容易实现(特别是对于3D)数据)但我不确定我是否可以通过这种方式有效地使用缓存.
我正在尝试跟踪我自己管理的网站上的用户互动.通过跟踪我的意思是,我想跟踪用户按下的按钮或小部件,以及用户花费的时间等等.在我开始编写Javascript代码之前,我只想了解什么是最佳选项.做这些事情和可能的陷阱.