问题标签 [resource-management]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何确保 SQLite3 连接正确关闭?还是我应该首先使用 DB con?
我有一个由多个类组成的应用程序。在大多数这些类中,我需要访问位于包含 60,000 行的 SQLite3 单词数据库中的数据(注意:每一行由一个单词、它的 POS 标签和频率组成)。
我不知道填充一个元组列表并将其传递给我的类(作为参数或全局)或者只是将连接传递给它们是否更好,因为我知道我将进行很少的过滤,例如:(SELCT * WHERE pos = 'N' ORDER BY frequency DESC
) . 由于我的应用程序经常使用这些数据,哪一个会更有效。
如果我使用数据库连接:不关闭数据库连接并经常重新打开它,是否会消耗资源?或者我应该保持连接打开?这导致了知道在哪里关闭连接的问题。有人可以建议一个合适的地方来关闭数据库连接吗?或者当应用程序终止时连接被关闭。
PS:从我的问题中可以明显看出我是一个新手,所以如果我问了很多问题,请原谅。
c++ - 一些 std::unique_ptr 使用和“陷阱”
C++11 有哪些std::unique_ptr
用途和陷阱?
我std::unique_ptr
也可以用来存储动态分配的数组吗?
我std::unique_ptr
还可以使用自定义删除机制与资源一起使用吗?
resource-management - 如何计算执行二进制文件的内存需求?
我一直在研究一些在集群上进行负载平衡的技术。在学习的过程中,我遇到了一个疑问。
oop - 在垃圾收集语言中处理非托管资源是否有任何替代概念?
垃圾收集的面向对象编程语言会自动回收未使用的内存,但所有其他类型的资源(即文件、套接字......)仍然需要手动释放,因为无法信任终结器及时(或根本不)运行。
因此,此类资源对象通常提供某种“关闭”或“处置”方法/模式,由于多种原因,这可能会产生问题:
- 必须手动调用Dispose,这可能会在不清楚何时必须释放资源的情况下造成问题(与手动内存管理类似的问题)
- 一次性模式有点“病毒式”,因为每个包含一次性资源的类也必须是一次性的,以保证正确的资源清理
- 向类添加一次性成员,要求类也成为一次性成员,改变了类的接口和使用模式,从而破坏了封装
- 一次性模式会产生继承问题,即派生类是一次性的,而基类不是
那么,是否有任何替代概念/方法可以正确释放此类资源?有这方面的论文/研究吗?
c# - 在 Web 请求之间共享资源?
在 ASP.Net 中,是否有一种标准方法可以在 Web 请求之间共享资源?
这是我的问题:
- 我需要从几个页面后面的代码中查询一个 Web 服务
- 此 Web 服务一次只允许一个登录会话
- 如果您登录两次,则第一个会话无效
- 会话存储为字符串,每 45 分钟过期一次,此时我必须重新进行身份验证
- 两个查询可以同时运行,只要它们使用同一个会话
话虽如此,让这个会话同时可用于多个页面/请求的最佳方式是什么?以及如何确保会话过期后,在重新登录后共享新会话?
这一切都在单个服务器上运行。
scala - 如何将 Scala ARM 与期货一起使用?
我想实现 ARM(自动资源管理)模式,其中资源是异步使用的。
问题
假设我的资源如下所示:
所需的使用模式是:
省略的映射函数可能很复杂,涉及分支和链接期货,这些期货重复调用r
返回期货的方法。
我想确保在所有未来的延续完成(或失败)r.close()
之后被调用。在每个呼叫站点手动执行此操作很容易出错。这需要 ARM 解决方案。
尝试的解决方案
scala-arm 库通常是同步的。这段代码不会做正确的事情,因为 close() 将在块内的期货完成之前被调用:
我虽然使用这个包装器:
然后呼叫站点将如下所示:
但是,块内的代码将负责返回一个 Future,该 Future 在该块创建的所有其他期货完成时完成。如果它不小心没有,那么在所有使用它的期货完成之前,该资源将再次关闭。并且不会有静态验证来捕获此错误。例如,这将是一个运行时错误:
如何解决这个问题?
显然,我可以使用 scala-arm 的定界延续支持 (CPS)。它看起来有点复杂,我害怕弄错。它需要启用编译器插件。另外,我的团队对 scala 非常陌生,我不想要求他们使用 CPS。
CPS 是唯一的出路吗?是否有一个库或设计模式可以使用 Futures 更简单地做到这一点,或者有一个使用 scala-arm 的例子?
scala - 如何通过 scala-arm 使用托管资源
如何scala-arm
在下面的代码中使用以便inputStream
自动发布?
我已经尝试过这样的事情......但当然最后一条语句失败了,因为方法toArray
不是 resource.ExtractableManagedResource
:
这是我如何scala-arm
用于管理输出流的工作示例:
是否有更简洁、面向 Scala 的方式来处理托管资源和scala-arm
(或scalax.io
)?
f# - 在序列表达式中使用“使用”时的资源管理
我有一个简单的序列表达式,它使用了我想在完成后清理的资源:
如果我然后使用序列来迭代,比如说,在项目的中途,资源什么时候被处置?
例如:
resource
Seq.find 完成后会被释放吗?还是我需要重新考虑我的资源管理策略?
c# - 在 asp.net 用户之间共享巨大的字节数组
我的 ASP.Net 应用程序中有一些巨大的原始字节数据数组 (1 MB * 100)。他们需要非常频繁地向多个用户广播。
一个线程在后台处理数据并不时更新它们。
您能否就在它们之间共享缓冲区的最佳选择给我建议?
c++ - 返回智能指针
假设我有一个管理器类,其中包含某个对象的向量:
在那个类中,我有一些函数可以遍历所述向量以返回请求的对象。
我需要知道的是什么时候使用智能指针合适。我真的应该返回类似下面的东西吗?
或者我应该使用其他类似 unique_ptr 或 weak_ptr 的东西吗?我希望 SomeObjectManager 类拥有返回的实际对象,并且永远不会说 SomeObject 被删除,除非 Manager 这样做。
我在 C# 模式下呆了很长一段时间后才回到 C++ 世界。感谢您的帮助并消除了我的困惑。
我已经阅读了很多关于此事的信息,但从未真正找到针对我的特殊情况的直接答案。
编辑#1
我想用这个来改写我最后几句话:
我希望 SomeObjectManager 类拥有正在返回的实际对象,并且从未说过 SomeObject 从向量中删除并随后被删除,超出范围,直到 Manager 强制它这样做。例如:
这只会遍历向量,找到 said SomeObject
,然后将其从向量中删除。