标签: buffering

Haskell IO与交互和地图

我正在尝试使用interact函数生成交互式Haskell程序map.

这是我在ghci中得到的(据我所知,这是所有教程解释interact用法的方式- 结果除外).

*Module> interact $ unlines . map (++ "!") . lines
tteesstt
!
Run Code Online (Sandbox Code Playgroud)

请注意,实际发生的是我输入的每个字符都会立即重复,然后按Return键后会出现感叹号.然而,我期待这样:

*Module> interact $ unlines . map (++ "!") . lines
test
test!
Run Code Online (Sandbox Code Playgroud)

如果我使用相同的程序结构,它可以完美地工作,而filter不是map.

io haskell map buffering

6
推荐指数
1
解决办法
1299
查看次数

什么是BufferedInputStream的C#/ .NET等价物(在Java中)?

Java BufferedInputStream和BufferedOutputStream类的C#等价物是什么?

.net c# buffering

6
推荐指数
1
解决办法
4119
查看次数

如何在fread()中禁用缓冲?

我正在使用fread()和fwrite()读取和写入套接字.我认为这些功能用于缓冲输入和输出.有没有什么方法可以在使用这些功能的同时禁用缓冲?

编辑:

我正在构建一个远程桌面应用程序,远程客户端似乎"落后于服务器",我不知道可能是什么原因......我认为这可能是因为缓冲读写.但使用setvbuf没有用.

通过"滞后",我的意思是远程桌面客户端在服务器后面运行几秒钟.服务器在特定时刻所做的事情在延迟大约15-20秒后反映在客户端.

另外,我不想使用not-use-fread(),因为它是现有代码的一部分.我不想修改它.我最终可以使用write()和read(),但我想避免它.

c sockets buffering fread

6
推荐指数
1
解决办法
3200
查看次数

Android,如何从onBufferingUpdate显示缓冲%

我有一个媒体播放器服务,播放互联网流,但我有问题如何在我的xml中显示缓冲百分比,目前我只是显示一条消息,因为我试过的所有方式给了我一个静态长号.这是我的播放器服务的代码:

@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
    setBufferPosition(percent * getMusicDuration() / 100);
    myMain.EstadoRadio.setText(" Reproductor \n Buffering... ");
}
Run Code Online (Sandbox Code Playgroud)

你可以告诉EstadoRadio是我的xml中的一个文本视图,它在myMain活动中工作,我想显示流的缓冲百分比.谢谢你的帮助.

编辑:我在大多数情况下看到使用onBufferingUpdate(MediaPlayer mp,int percent)的'%',如下所示:

myMain.EstadoRadio.setText(" Reproductor \n" + percent + "%");
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,百分比总是-2147483648,我不知道为什么,或者为什么它不会改变或更新,这里有一点来自我的日志猫:

05-17 13:34:37.005: V/MediaPlayer(25382): message received msg=3, ext1=-2147483648, ext2=0
05-17 13:34:37.005: V/MediaPlayer(25382): buffering -2147483648
05-17 13:34:37.005: V/MediaPlayer(25382): callback application
05-17 13:34:37.005: V/MediaPlayer(25382): getDuration
05-17 13:34:37.015: V/MediaPlayer(25382): back from callback
05-17 13:34:38.016: V/MediaPlayer(25382): message received msg=3, ext1=-2147483648, ext2=0
05-17 13:34:38.016: V/MediaPlayer(25382): buffering -2147483648
05-17 13:34:38.016: V/MediaPlayer(25382): callback application
05-17 13:34:38.016: …
Run Code Online (Sandbox Code Playgroud)

android stream buffering media-player

6
推荐指数
1
解决办法
3598
查看次数

Perl,禁用缓冲输入

有一个文件:

:~$ cat fff
qwerty
asdf
qwerty
zxcvb
Run Code Online (Sandbox Code Playgroud)

有一个脚本:

:~$ cat 1.pl
#!/usr/bin/perl
print <STDIN>
Run Code Online (Sandbox Code Playgroud)

该命令按预期工作:

:~$ cat fff | perl -e 'system("./1.pl")'
qwerty
asdf
qwerty
zxcvb
Run Code Online (Sandbox Code Playgroud)

但是此命令将无法按预期工作:第一个<STDIN>读取所有数据,而不是单行.如何禁用<STDIN>的缓冲?

:~$ cat fff | perl -e '$_ = <STDIN>; system("./1.pl")'
:~$
Run Code Online (Sandbox Code Playgroud)

perl buffering

6
推荐指数
1
解决办法
2157
查看次数

在php中,我想将s3文件下载到浏览器而不将其存储在我的服务器上

我在亚马逊的S3上有文件.它们以唯一ID命名,因此没有重复项.我正在使用授权的URL访问它们.我需要能够将它们传递给浏览器,但我需要重命名它们.现在我正在使用fopen,但它在将文件提供给浏览器之前将文件下载到我的服务器.如何让文件"通过"我的服务器传递到浏览器?或者我如何缓冲下载 - 将一小块下载到我的服务器并在下载下一个块时将其传递给浏览器?

此外 - 我真的想使用CloudFront,但他们不提供经过身份验证的URL.我相信我可以使用CURL发送请求的凭据 - 我可以使用CURL执行此类"传递"文件服务吗?

谢谢!

php fopen download amazon-s3 buffering

5
推荐指数
1
解决办法
4624
查看次数

为什么我的IO没有按顺序执行?

我遇到的问题是IO没有按顺序执行,即使在do构造中也是如此.

在下面的代码中,我只是跟踪剩下的卡片,卡片是一个字符元组(一个用于套装,一个用于值)然后用户不断被问到已经播放了哪些卡片.我希望putStr在每个输入之间执行,而不是像现在这样在最后执行.

module Main where
main = doLoop cards
doLoop xs = do  putStr $ show xs
                s <- getChar
                n <- getChar
                doLoop $ remove (s,n) xs
suits = "SCDH"
vals = "A23456789JQK"
cards = [(s,n) | s <- suits, n <- vals]
type Card = (Char,Char)
remove :: Card -> [Card] -> [Card]
remove card xs = filter (/= card) xs
Run Code Online (Sandbox Code Playgroud)

io haskell buffering

5
推荐指数
3
解决办法
813
查看次数

函数中带有time.sleep()的sys.stdout.write()问题

我想要的是使用time.sleep()打印出每秒打印一个点的5个点,但结果是在延迟5秒后立刻打印了5个点.
尝试了print和sys.stdout.write,结果相同.

感谢您的任何建议.

import time
import sys

def wait_for(n):
    """Wait for {n} seconds. {n} should be an integer greater than 0."""
    if not isinstance(n, int):
        print 'n in wait_for(n) should be an integer.'
        return
    elif n < 1:
        print 'n in wait_for(n) should be greater than 0.'
        return
    for i in range(0, n):
        sys.stdout.write('.')
        time.sleep(1)
    sys.stdout.write('\n')

def main():
    wait_for(5)    # FIXME: doesn't work as expected

if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        print '\nAborted.'
Run Code Online (Sandbox Code Playgroud)

python buffering

5
推荐指数
1
解决办法
3217
查看次数

在PHP中禁用输出缓冲

我有一个任务对象和__deconstruct(),它意味着在页面的其余部分已经加载后运行一些较长的清理任务.不幸的是,它会缓冲输出,直到任务完成后才会发送它(任务中没有打印任何内容).

我通过http://www.php.net/flush阅读并尝试了所有的建议.显然我已经尝试在php.ini中禁用output_buffering.我已禁用deflate_module,zlib压缩已关闭,没有mod_gzip.调用flush()或ob_flush()无效,也无法启用implicit_flush.

我只是在Windows Server 2008 R2下运行XAMPP(目前是apache 2.2.17,php 5.3.4).PHP正在作为模块运行.

是的,我可以设置一些小的AJAX黑客来运行任务管理器,甚至设置一个计划任务来运行这个特定的任务,但输出缓冲也是其他地方的问题.只是有时它会消失.

从一个类似的线程,有人建议看看以下将做什么:

<?php
while (TRUE)
{
    echo 'x';
    flush();
    sleep(1);
}
?>
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,页面在达到最大执行时间之前不会显示任何内容,此时它会刷新缓冲区.

这已经变得非常令人沮丧.任何人都有什么想法可能导致它缓冲?

php apache xampp buffering

5
推荐指数
1
解决办法
3640
查看次数

C++中的缓冲区大小

我正在使用C++ Std库方法std :: ostream :: write()观察以下行为.

为了缓冲数据,我正在使用以下C++ API

std::ofstream::rdbuf()->pubsetbuf(char* s, streamsize n)
Run Code Online (Sandbox Code Playgroud)

只要我们在文件流上写入数据(datasize)的大小,这样就可以正常工作(使用strace实用程序验证)

std::ofstream::write (const char* s, datasize n)
Run Code Online (Sandbox Code Playgroud)

小于1023字节(低于此值,写入累积直到缓冲区未满),但是当要写入的数据大小超过1023时,不考虑缓冲区并将数据刷新到文件中.

例如,如果我将缓冲区大小设置为10KB并且每次写入大约512字节,则strace将显示多个写入已合并为单个写入

writev(3, [{"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 9728}, {"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 512}], 2) = 10240 ( 10 KB )
writev(3, [{"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 9728}, {"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 512}], 2) = 10240
...
Run Code Online (Sandbox Code Playgroud)

但是当我一次写入1024个字节(保持缓冲区固定为10 KB)时,现在strace告诉我它没有使用缓冲区,并且每个ofstream :: write调用都被转换为写入系统调用.

writev(3, [{NULL, 0}, {"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 1024}], 2) = 1024 ( 1KB )
writev(3, [{NULL, 0}, {"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 1024}], 2) = 1024
...
Run Code Online (Sandbox Code Playgroud)

是否有我缺少的C++ API调用或Linux调优参数?

c c++ linux io buffering

5
推荐指数
1
解决办法
3929
查看次数

标签 统计

buffering ×10

io ×3

c ×2

haskell ×2

php ×2

.net ×1

amazon-s3 ×1

android ×1

apache ×1

c# ×1

c++ ×1

download ×1

fopen ×1

fread ×1

linux ×1

map ×1

media-player ×1

perl ×1

python ×1

sockets ×1

stream ×1

xampp ×1