问题标签 [autoflush]
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 - PrintWriter 不会立即刷新,即使使用 autoFlush
我有一个 Java 服务器,它将来自多个客户端的某些信息附加到一个文件中。所以我正在创建一个FileWriter
带有 append=true 和一个PrintWriter
带有 autoFlush=true 的。但是,当我监视(例如,使用 tail 命令)文件时,内容不会立即写出,通常会有 10-30 秒的延迟。该服务器在带有 JDK 1.7 64b 的 Linux 上运行。为什么自动刷新在这里不起作用?如何使文件中的数据立即可用?
这是重现问题的代码。在 Linux 上,在应用程序输出该行之后和在另一个终端中可以看到该行之前(使用 tail -f),有一个明显的延迟(~1-2 秒)。在 Windows 上,输出似乎非常快(比我在 Notepad++ 中刷新文件的速度还快)
2012 年 12 月 4 日更新:
我想我找到了问题的根本原因。它实际上是 Linux 上的 async /nfs 挂载。服务器写入文件的目录挂载为 async nfs
在我将文件切换到 /tmp 后,文件附加现在是立即的。
jsp - 什么时候应该禁用 JSP 缓冲?
Oracle 网站上的一些文档(http://docs.oracle.com/cd/A97688_16/generic.903/bp/j2ee.htm,3.1.12 Disable JSP Page Buffer If Not Used)说:
如果您没有使用任何需要缓冲的 JSP 功能,您可以禁用它以提高性能;创建缓冲区时不会使用内存,输出可以直接到浏览器。您可以使用以下指令禁用缓冲:
<%@ page buffer="none" %>
但是,我还没有找到任何类型的文档来说明究竟什么是“需要缓冲的 JSP 功能”。我通常了解在什么情况下减少或增加缓冲区可能会或可能不会有助于提高性能,但我不知道什么样的功能会“需要”缓冲。
在什么情况下应该关闭缓冲,和/或在什么情况下不应该关闭缓冲?
perl - autoflush 在套接字中做了什么?我们为什么用它?
我正在研究一些套接字代码,但无法弄清楚为什么autoflush
在套接字上使用了。是这样的
还有地方有
对于一般文件。
它有什么作用?如果我不使用它会发生什么或将会发生什么?请举一些实际的例子,以便我理解而不是简单的定义。
django - Django 测试数据库不自动刷新
我有一堆单元测试文件,所有这些文件都由 django.test.TestCase 类组成。
给自己写了一个小 shell 脚本来取消注释/注释我的 __init__.py 文件中的测试文件导入,所以我可以根据我给它的命令行参数从某些测试文件运行测试。我还能够一次性运行所有测试文件的所有测试(用于回归测试目的)。
我有一个包含一些 JSON 夹具的测试文件,第一个测试检查某个模型/表中是否有 3 条记录(由 JSON 夹具定义)。
所以这就是问题所在:当我自己运行这个测试文件时,它的测试以优异的成绩通过,但是当我用所有其他测试运行测试时,我提到的那个特定的测试用例失败了。
当我运行所有测试时,数据库说表/模型中有 6 条记录,但应该只有 3 条(来自夹具),就像测试文件自己运行时一样。
我还尝试使用其他一些测试文件(不是全部)运行该测试文件并且它通过了。所以唯一没有的时候是所有测试文件都运行时。
对我来说,这似乎是 Django 或 PostgreSQL(我正在使用的 DB)中的一个错误,因为 Django TestCases 不应该在每个测试方法之间自动刷新/重置数据库,更不用说测试类了?
c++ - 退出前是否保证标准输出自动刷新?它是如何工作的?
这是代码(有效的 C 和 C++)
如果在第 1 行中我输入了 segfaulting 表达式,程序就会崩溃而不打印任何东西(如预期的那样)。
但是为什么上面的代码打印“asdf”并且在没有刷新缓冲区的情况下不退出?引擎盖下是什么,为什么它会按预期工作?
c# - 即时从 Process.StandardOutput 获取数据
我正在尝试从 Process.StandardOutput 获取数据......但我有一个问题:我在进程结束时获取数据,但不是在执行期间(它不刷新???)。看起来数据缓冲在某处。当我手动运行该过程时,消息在执行期间出现。怎么修?
java - Hibernate 确实会创建新条目而不是更新(并非总是如此)
我面临的问题是,我的 DAO 尝试再次保存现有对象,而不是更新。(它创建一个新的)
这发生在 hibernateTemplate saveOrUpdate- 和 merge- 方法中。传递的对象始终包含一个 ID(PK、自动递增、标识生成器类),因此它应该更新。
抛出异常:
异常是在休眠类中的某个地方引发的,因为我无法在调试模式下使用 try-catch 子句捕获它们。
我的问题是,这种情况并非每次都发生。只有四五次。我怀疑我有会话问题,但我不知道真正出了什么问题。
我的会话 FLUSH_MODE 设置为 AUTO
谢谢,如果您需要更多信息,请告诉我
更新 1:实体 hbm.xml
更新 2:休眠日志记录
此输出紧接在异常之前
tcp - 仅当 Stream Writer Auto Flush 为 true 时,服务器才会向客户端写入消息。谁能告诉我为什么?
这是我将数据写入客户端的服务器端代码。
仅当自动刷新为 true 时,服务器端代码才会将数据写入客户端。谁能解释一下
ruby-on-rails - 由于自动刷新日志,内存利用率很高
如果autoflush_log
设置为true,是否可能具有高内存利用率?
我有一个像这样的自定义生产环境(暂存)设置
这是记录 sql 语句。所以我将日志级别设置为信息
但是添加上述行会导致独角兽进程占用过多内存,并且机器的内存运行非常高
当我添加这一行
内存利用率变得正常。任何人都可以看到连接?为什么会autoflushing
造成内存利用率高?
java - 你需要 System.out.flush() 之前 System.error.print("");
如果您使用System.err.print("There was an error..."); System.error.flush();
,您是否需要System.out
在手前冲洗。我知道用System.out.print("bla");
and编写System.error.print("bla");
可能会导致未刷新的流混淆。
我假设您只需要在知道没有 aSystem.out.println();
或System.out.print("\n");
因为 a"\n"
自动刷新的情况下才需要这样做java.lang.System
,但我只是想确定一下。
另外,请不要在评论中说“你为什么不测试它?” 因为这有点难以测试,因为您基本上是依靠运气来查看流是否没有正确刷新。
谢谢!
编辑
回答:
我想只要Logger.getLogger(Your_Class.class.getName()).log(Level.WHATEVER, "message");
没有例外就使用。
-
如果你不相信我,sout 和 serr 会混淆...
证明(我刚做的课):
输出 :
但是,如果您将 Test.java 转换为 jar 并运行java -jar file/to/jar/Test.jar
pause
,则不会出现不匹配的情况-正如某些人所说(因为这是大多数 ide 控制台中的问题)。
-
-
此外,我仍然无法在Netbeans ide 中刷新两个不同的流;他们仍然到处都是。