|
|
1
4
如果要重用线程(如线程池中),则可以将DocumentBuilderFactory声明为线程本地的。为每个线程创建一个新的集合是有开销的,但是正如我所说,如果您要重用后续的开销是非常低的。
在这里,您将只为每个线程创建一个DocumentBuilderFactory。 我不知道在解析时documentbuilder是否是线程安全的(它是不可变的吗?)但是,如果在解析时documentbuilder是线程安全的,那么您可以使用与我所说的相同的机制。 这个解决方案将使总吞吐量尽可能快。 注意:这个没有经过测试或编译,只是给出了我所指的概念。 |
|
|
2
2
2)是线程安全的,但是你的应用程序一次只能解析一个文档。 为什么不使用你的代码呢?做
有明显不可接受的开销吗? |
|
|
3
1
如果要避免同步阻塞,应确保使用原子操作。行为
|
|
|
4
1
在类似的情况下,我遇到了一些性能问题。我在每次使用时都创建工厂对象以避免线程问题(每秒10次)。该(公认是旧的)平台中的XML实现为服务提供者类执行了一些相对较慢的查找逻辑。 我的调优是确定结果的答案,并通过命令行属性对其进行配置。这导致跳过了查找。
令人沮丧的是,如果找到一个类,查找代码就具有缓存逻辑。但没有缓存未命中(未找到任何内容,请使用默认值)。稍微好一点的查找缓存(处理了否定的情况)会使这种情况变得不必要。 这还需要吗?需要在您的环境中进行测试。我在Solaris上使用truss来注意到查找逻辑导致的非常频繁的文件操作。 |
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 1 年前 |
|
|
András Takács · Python多线程错误 1 年前 |