问题标签 [resource-cleanup]
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.
java - Akka:动态创建的 Actor 完成后需要清理它们吗?
我已经使用 Akka 及其 Java API UntypedActor 实现了一个 Actor 系统。在其中,一个参与者(A 类)根据需要动态启动其他参与者(B 类),使用getContext().actorOf(...);
. 那些 B 演员会做一些 A 不再关心的计算。但是我想知道:那些B型演员完成后是否有必要清理他们?如果是这样,怎么做?
- 通过让 B 演员
getContext().stop(getSelf())
在他们完成后打电话? - 通过让 B 演员
getSelf().tell(Actors.poisonPill());
在他们完成后打电话?[这是我现在正在使用的]。 - 什么都不做?
- 经过 ...?
文档对此并不清楚,或者我忽略了它。我对 Scala 有一些基本的了解,但是 Akka 的源代码并不完全是入门级的东西......
python - Django 清理代码
在我的models.py
我打开一些文件和数据库连接。我可以在哪里放置代码以确保在服务器关闭时关闭这些文件/连接?
c - 使用 dlsym 清理函数插入
作为 malloc 包装器,我使用这段经典的代码片段:
Valgrind 很不高兴,因为在程序结束时 dlsym 仍然分配了缓冲区。
我怎样才能释放这些资源?谢谢
mysql - 将 MySQL 数据库从 MyISAM 转换为 InnoDB
我必须将 Mysql 数据库从 MyISAM 转换为 InnoDB。
问题是现有的 MyISAM 数据库有很多不一致的数据,这会在 InnoDB 中造成问题。到处都是无效的外键引用,所以在切换存储引擎的过程中,我将不得不从数据库中清理垃圾。
是否有一些工具可以帮助我检测那些无效的 fk 引用,因为手动检查每个关系将是一项艰巨的工作?
已经做过的人可以分享经验,什么是最好的方法。
java - 在 EXIT_ON_CLOSE JFrame 上调用 windowClosed
我有一个小问题。
我的 Java 应用程序拥有一些本地资源。我想在退出应用程序之前释放这些资源。因此我写了一个WindowListener
释放这些资源的windowClosed
事件。
问题是我有一个JFrame
with EXIT_ON_CLOSE
,所以当我关闭窗口时,它会关闭 JVM 并且事件永远不会到达我。
如果我使用windowClosing
事件,那么在我释放资源后,实际上有人可以覆盖关闭事件。这将导致本机代码中的段错误。
我可以收起听者的EXIT_ON_CLOSE
and 呼叫System.exit(0)
,但这对我来说似乎并不干净。
keyword - 检查哪个词是真实的和常用的
我有一个数据库,其中包含从我的数据构建的 70k 个关键字。问题是,一些(10-15%)的词不是真正常用的关键词。如何检查哪些不是真正的好词,以便我可以清理我的桌子?有人知道吗?
c++ - 如何在同一个程序中创建多个套接字。?
我正在编写一个程序,它有两个绑定到两个不同端口的套接字。我创建了另一个程序的对象,该对象位于一个单独的文件中(它还有一个已初始化的套接字并绑定到一个单独的端口)。我得到一个运行时异常,当我尝试打印 WSAGetLastError 时,它返回了错误代码:10093。
我想知道的是,我如何使用 WSAStartup() 和 WSACleanup()。我是否需要为每个套接字调用 WSAStartup() 并调用 WSACleanup() 三次。
有人可以帮我克服这个问题。提前致谢..:-)
.net - 如何在不调用 application::doevents 的情况下关闭后台工作线程?
假设我有一个 GUI 应用程序,它有一个在应用程序的生命周期内运行的后台线程。当我关闭应用程序时,我想干净地关闭任何这些后台线程。实际上,我经常运行一些线程来执行数据收集和处理活动,而无需挂起 GUI。
下面的例子演示了这个问题;也就是说,如果您取消后台工作人员,它会尝试在主线程上调用工作人员完成方法。如果不调用Application::DoEvents()
代码只会无限期地挂起,但我之前遇到过调用问题DoEvents
,我的直觉告诉我这是不好的做法。
所以问题是;当我的应用程序退出时,干净地关闭后台工作线程的正确方法是什么?
c# - finally 阻止使用 - 它是否像在 finally 的其他上下文中一样触发?
在我经常使用的一些代码中(并且已经编写了几次),使用了如下代码:
我熟悉 C# 中的 try/catch/finally ...我知道 finally 的上下文是有效的。当我对“最终使用”一词进行谷歌搜索时,我找不到相关匹配项。
这个 finally 的上下文是否像我想的那样工作,在 Using 语句的最终命令中,Finally 块的内容在哪里被执行?还是我(以及我正在使用的代码库)都错了?最终仅限于 Try/Catch 吗?
memory-leaks - Ajax 驱动页面上的 Knockout.js 绑定
真正开始享受 KnockoutJs (http://knockoutjs.com)。我的大多数网络应用程序都是 ajax 驱动的。加载整个站点,然后从链接到链接,我们只需通过 ajax 调用更改正文内容。
当 ajax 返回新的正文内容时,我可以进行 Knockout 绑定。没问题。当我链接到下一页时(只是一个替换正文的 ajax 调用)。我认为 Knockout 建筑物仍在记忆中,但并没有真正受到限制,因为 dom 已经改变。关于这个话题的几个问题。
如果下一页没有任何 Knockout,那么让 Knockout 对象在内存中徘徊真的有那么糟糕吗?更好的是有没有办法重置(清除)淘汰赛对象?
当我从一个具有淘汰赛绑定的页面转到另一个具有淘汰赛绑定的页面时,是否只是再次调用 ko.applyBindings() 清除旧内容并重新绑定新内容?(再一次,当我说从一页转到另一页时,我只是用 ajax 调用重新加载正文)。
淘汰赛是否有任何“实时”绑定。有点像 jQuery 的实时绑定?这种方式可以预先加载 Knockout,然后不必从内容更改重新应用到内容更改。
一般来说,我正在寻找有关如何在浏览器不从页面刷新到页面的应用程序中最好地使用逐页淘汰的建议。
在此先感谢您的帮助。