标签: buffer

在Emacs中打开太多分屏!

自从我在新机器上安装了emacs以来,我看到了一个丑陋的行为.不幸的是,我的旧.emacs文件相当分散,我无法确定我是否曾经使用elisp来处理这个问题.

问题是这样的:过去我执行的命令会打开一个新的缓冲区,例如grep'ing,或点击搜索结果中的文件名,就会发生以下两种情况之一:

  1. 如果只显示一个缓冲区,屏幕将分割一次
  2. 如果显示多个缓冲区,则当前缓冲区窗口之后的缓冲区窗口将打开所需的文件

我希望这种行为回来.我现在得到的是以下内容:

Emacs将继续拆分窗口,直到打开四个缓冲区窗口.如果我不断地单击多个grep结果,它们打开的缓冲区窗口将循环通过另外三个(非grep-results)缓冲区窗口.如果他们只是在同一个位置打开,我会喜欢它:结果旁边/下面的"下一个"缓冲区窗口 - 每次都是相同的缓冲区窗口.

有关如何实现这种行为的任何想法?

emacs grep buffer split

12
推荐指数
1
解决办法
2366
查看次数

用C或Python中的popen绕过子进程输出的缓冲

我有一个关于popen(以及所有相关函数)的一般性问题,适用于所有操作系统,当我编写python脚本或一些c代码并从控制台(win或linux)运行生成的可执行文件时,我可以立即看到输出从过程中.但是,如果我运行与分支进程相同的可执行文件,并将其stdout重定向到管道,则输出缓冲到某处,通常最多为4096字节,然后将其写入父进程可以读取的管道.

以下python脚本将以1024字节的块生成输出

import os, sys, time

if __name__ == "__main__":
     dye = '@'*1024
     for i in range (0,8):
        print dye
        time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

以下python脚本将执行前一个脚本,并在输出到管道时逐字节地读取输出

import os, sys, subprocess, time, thread

if __name__ == "__main__":
    execArgs = ["c:\\python25\\python.exe", "C:\\Scripts\\PythonScratch\\byte_stream.py"]

    p = subprocess.Popen(execArgs, bufsize=0, stdout=subprocess.PIPE)
    while p.returncode == None:
        data = p.stdout.read(1)
        sys.stdout.write(data)
        p.poll()
Run Code Online (Sandbox Code Playgroud)

调整操作系统的路径.在此配置中运行时,尽管popen命令的缓冲区大小设置为0(无论如何都是默认值),但输出不会以1024块显示,而是以4096块显示.任何人都可以告诉我如何改变这种行为吗?有什么方法可以强迫操作系统以与从控制台运行时相同的方式处理分叉进程的输出,即只需通过数据提供数据没有缓冲?

c python buffer pipe

12
推荐指数
1
解决办法
9171
查看次数

如何在ActionScript 3中从缓冲区(ByteArray/Stream)播放MP3声音?

所以..我有一个MP3数据缓冲区(如果我保存这个缓冲区,并将其称为buffer.mp3它将播放,但在这种情况下,我不应该将它保存到文件系统).我必须玩它,但我不能,我该怎么办?


我尝试了下一个代码来播放该缓冲区(ByteArray\Stream)(我从服务器获取MP3数据,获取数据的方法工作正常(在文本int上测试等)我调用返回的ByteArray readResponse,因为我有一些seading方法,它是这是回应).

            protected function Play(event:MouseEvent):void
        {
            var mySound:Sound = new Sound();
            mySound.addEventListener(SampleDataEvent.SAMPLE_DATA, soundFill);
            mySound.play(); 
        }

        public function soundFill(event:SampleDataEvent):void
        {
            event.data.writeBytes(readResponse.buffer, 0, readResponse.buffer.length);  
        }
Run Code Online (Sandbox Code Playgroud)

mp3 buffer bytearray stream actionscript-3

12
推荐指数
1
解决办法
2万
查看次数

如何让emacs快速打开新缓冲区?

我曾经能够使用该命令快速在Emacs中打开一个新的缓冲区 C-x b <non existent buffer name>

不知怎的,我在我的Emacs版本(23.1)中打破了这个.当我尝试这样做时,我[No match]在命令缓冲区中获取消息.

有谁知道我可能已经做了什么来打破这个功能,或者我有可能想到能够做到这一点?

emacs buffer

12
推荐指数
2
解决办法
1万
查看次数

Vim:更改缓冲区编号

我通常喜欢使用缓冲区编号快速进入缓冲区.不幸的是,经过多次搜索,打开一些文件等,缓冲区数字变得疯狂:

  1. 无论如何都要手动分配缓冲区号码?
  2. 无论如何重启缓冲区编号?

谢谢.

vim buffer

12
推荐指数
2
解决办法
4061
查看次数

elisp中的缓冲区本地函数

我想重新定义现有函数foo,但仅限于特定缓冲区.

(defun foo ()
  (message "Not done:("))
Run Code Online (Sandbox Code Playgroud)

我正在跳这个会做:

(make-local-variable 'foo)
(fset 'foo #'(lambda () (message "Done!")))
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.有任何想法吗?

[编辑:或者,因为函数绑定到一个键,只需修改当前缓冲区的绑定就足够了.但我不明白该怎么做.本地键映射由主模式中的所有缓冲区共享.修改它会修改具有此主要模式的所有缓冲区中的绑定.

我能想到的唯一丑陋的解决方案是为整个缓冲区设置一个keymap text-property.这是继续进行的唯一途径吗?]

emacs buffer elisp function local

12
推荐指数
3
解决办法
2202
查看次数

为什么得到Http请求和响应太晚了

我正在使用http post方法向Http Server URL发送请求.

请求和响应之间的时间差大约为60秒,但根据服务器团队,一旦请求到达,他们将发送响应7秒.

我不认为网络在服务器端需要剩余53秒的时间才能到达数据包,因此可能出现问题.

在此应用程序中,我们在客户端和服务器之间使用同步通信.请提供以下详细信息.

  1. 是因为服务器以比服务器能够处理的更快的速度发送请求.在这种情况下,很多时候客户端以3秒的间隔获取请求,而服务器需要7秒来处理此问题.
  2. 什么是网络缓冲区.网络级别有两个缓冲区,一个位于客户端,另一个位于服务器位置.
  3. 如果服务器无法以相同的速度处理客户端发送的请求,则所有请求都会在客户端缓冲区缓冲,如果有更多的请求待处理,则会发生什么情况,而不是该缓冲区的最大大小.
  4. 如果我们处于客户端并且无法控制服务器,那么提高性能的替代方法是什么?

编辑:当我在网络中使用wireshark来捕获网络日志时,我发现它实际上是我的应用程序发送到服务器后20秒内在wireshark中进行了学习.这种延迟背后的原因是什么?什么原因可能是请求在网络中出现20秒实际发送延迟的可能原因.

.net c# performance buffer http

12
推荐指数
3
解决办法
4582
查看次数

在蟒蛇熊猫的deque

我使用Python deque()来实现一个简单的循环缓冲区:

from collections import deque
import numpy as np

test_sequence = np.array(range(100)*2).reshape(100,2)
mybuffer = deque(np.zeros(20).reshape((10, 2)))

for i in test_sequence:
    mybuffer.popleft()
    mybuffer.append(i)

    do_something_on(mybuffer)
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种简单的方法可以使用Series(或DataFrame)在Pandas中获得相同的东西.换句话说,如何在末尾有效地添加单行并在a SeriesDataFrame?的开头删除单行?

编辑:我试过这个:

myPandasBuffer = pd.DataFrame(columns=('A','B'), data=np.zeros(20).reshape((10, 2)))
newpoint = pd.DataFrame(columns=('A','B'), data=np.array([[1,1]]))

for i in test_sequence:
    newpoint[['A','B']] = i
    myPandasBuffer = pd.concat([myPandasBuffer.ix[1:],newpoint], ignore_index = True)

    do_something_on(myPandasBuffer)
Run Code Online (Sandbox Code Playgroud)

但它比deque()方法慢得多.

python buffer pandas

12
推荐指数
1
解决办法
2723
查看次数

C#中缓冲区和流之间的区别

我读到缓冲区是字节序列.但我也读到Stream也是字节序列.那么Stream和Buffer之间有什么区别?

c# buffer stream

12
推荐指数
1
解决办法
7356
查看次数

在Docker容器之间传输数据的最有效方法是什么

我有来自传感器设备(例如视频)的每秒大量字节,这些传感器设备正由Docker容器中的进程读取和处理.

我有一个想要读取已处理字节流的第二个Docker容器(仍然是每秒大量字节).

什么是读取此流的有效方法?理想情况下,我想让第一个容器写入第二个容器可以读取的某种共享内存缓冲区,但我不认为单独的Docker容器可以共享内存.也许有一些共享文件指针的解决方案,文件保存到内存文件系统?

我的目标是尽可能地提高性能并尽可能减少从一个缓冲区到另一个缓冲区的无用数据副本.

编辑:很想拥有Linux和Windows的解决方案.同样,我有兴趣在C++和python中找到解决方案.

memory video buffer shared docker

12
推荐指数
1
解决办法
998
查看次数

标签 统计

buffer ×10

emacs ×3

c# ×2

python ×2

stream ×2

.net ×1

actionscript-3 ×1

bytearray ×1

c ×1

docker ×1

elisp ×1

function ×1

grep ×1

http ×1

local ×1

memory ×1

mp3 ×1

pandas ×1

performance ×1

pipe ×1

shared ×1

split ×1

video ×1

vim ×1