f*********r 发帖数: 1233 | 1 这是个典型的例子,即便别人给了protocol,仍然不能重复。
几点建议:
1,DNase能不用就先不用。
2,loading buffer里先不要加bromophenol blue。或者不要加太多。至少要清亮,能
看到里面是透明还是混浊还是沉淀。
或者可以先用lysis buffer,处理完了再加浓缩的loading buffer。
3,pellet加上lysis buffer以后,不要用pipette打匀。而是直接用sonication冲击。
sonication是很强的,别说一个pellet,就是坚韧的大块骨骼肌组织,都能轻易打碎。
确认pellet被彻底打散并溶解了。
4,打碎以后离心,如果不理想可以考虑超高速离心。
5,取上清(这个时候应该一点都不粘了),加loading buffer,煮,跑胶。
6,如果条带形状扭曲,可以考虑把running buffer里面的tris含量酌情加量(2-3倍,
只要低分子量的蛋白仍然跑得开,跑不开的可以用4-20%的胶)。
7,如果还不太理想,可以考虑弃用glycin running buffer,改用taurin running
buff... 阅读全帖 |
|
z**********8 发帖数: 229 | 2 来自主题: JobHunting版 - 汉若塔问题 #include
using namespace std;
#include
#include
class Tower{
private:
int index;//indicate the number of tower
stack one_tower;
public:
Tower(int i=0):index(i){}//constructor
int getindex();
void add(int d);
void moveTopTo(Tower t);
void print();
void moveDisks(int n,Tower Destination,Tower buffer);
};
int Tower::getindex()
{
return index;
}
void Tower::add(int d)
{
if((!one_tower.empty())&&(d>one_tower.top()))
cout<<"... 阅读全帖 |
|
d*k 发帖数: 207 | 3 请问这正常吗?是不是我的算法还不够好?
我用的方法是dfs,逐行枚举能够放下皇后的位置,对于每个位置,需要O(1)的时间判
断是否能够放下皇后。没有其他剪枝。更新buffer是把当前解存下来,是为了做N-
Queens时候用的。代码如下。
class Solution {
public:
void search(int row, int pos, int* buffer, bool* taken, bool* diag_left_
taken, bool* diag_right_taken, int* count, int row_num) {
if (row == row_num) {
*count += 1;
return;
}
if (pos == row_num) {
return;
}
int diag_left = pos - row + row_num;
int di... 阅读全帖 |
|
d*k 发帖数: 207 | 4 一直關注這帖子,我幫你review一下啊。
直改了邏輯錯誤,都在註釋裡。因為你的實現有bug,可能更改方式不只一種。我只在
註釋裡寫了一種我認為正確的改法。
===============================================
int Read4(char *buffer);
int Read(char *str, int max_size){
static int curPos = 0;
static char *buffer = new char[4];
int size = 0;
int readSize = 0;
int saveSize = 0;
/*
下面這個if裡是錯的,比如你沒有更新max_size,而且memcpy不能從頭開始
copy buffer等等。另外,過於繁瑣。按照你的變量設計,好一點的寫法是
if (curPos > 0) {
int readSize = 4 - curPos;
saveSize = ... 阅读全帖 |
|
N**********i 发帖数: 34 | 5 从7月份到现在,磕磕盼盼终于拿到了FB的offer,准备从了。就此做个总结,希望能对
还在找工作的朋友们有所帮助...
准备: lc(没刷完,但是有些高频题做了好几遍,还有水中的鱼的博客),cc150(先
刷了一遍,然后又看了好几遍,反复看了书中的一些不错的解法),g4g(稍稍做了一
些题),各大面经、版上大牛总结帖。我不是new grad(2年工作经验),所以简历上的
工作时的projects好好准备了一下。
整体感觉就是:
1. 被拒多半还是实力问题+少许运气问题。onsite interview最好保证每一轮都不差(
哪怕都没有很突出),否则就很容易悲剧。所以还是得要多做题甚至多面试找感觉
2. 最有用的是lc+面经+大牛总结,面试时至少有30%-50%会遇到类似甚至一样的
3. bug free很难做到,也没啥必要. 之前有人说FB要求bug free被吓到了,但是感觉
思路+clean code更重要
4. 在三三面试官面前不要害怕,反正你做的多好他们都可以想办法阴你,还不如放松
心态跟他们好好一战
L(电面跪了)
HR分组的时候有点奇怪,分到了类似Site Reliabil... 阅读全帖 |
|
g******4 发帖数: 6339 | 6
----------------------------------
• September 18, 2017
The buffer zone is an area where residents have the choice to send their
children to either Central or South. Currently the buffer zone lies east of
Cass Avenue and between 63rd Street and Plainfield Road.
An idea presented of combining the two schools to have an upperclass campus
at one school and a underclass campus at another, caused much controversy
among parents, and was eventually shut down.
Another argument is to get rid of th... 阅读全帖 |
|
e***s 发帖数: 1397 | 7 Summary: Best choice is 12GA pump shotgun, loaded with #1 buckshot.
http://www.firearmstactical.com/briefs10.htm
Shotgun Home Defense Ammunition
(Tactical Briefs #10, October 1998)
For home defense, a shotgun is superior to a handgun in terms of being able
to stop a violent intruder as quickly as possible. A reliable, well-made,
pump-action shotgun can usually be purchased for less than the cost of a
handgun of comparable quality. Also, inexpensive birdshot ammunition,
typically used for trainin... 阅读全帖 |
|
l****y 发帖数: 5952 | 8 谢谢睡鼠mm
我的cool edit里面
play or record buffer- total buffer size 2sec, using 10 buffers,
preview buffer--minimum size 250ms
是该改第一个total buffer size么?应该改多长时间啊
哦,还有一个是playback buffer size 1s, 10 playback buffers,好像这个是response
time,应该改这个对么? |
|
z***y 发帖数: 7151 | 9 You have SQL SERVER 2008 R2 which has been short of memory. Now you had
added memory and need to monitor to make sure SQL SERVER has enough memory,
which options are needed (Two options are needed):
a. run dbcc memorystatus
b. Check SQL Server Buffer Manager: Checkpoint Pages/Sec
c. Chck SQL Server Memory Manager: Target Server Memory
d. SQL Server Buffer Manager: Page Life Expectancy
e. run select * from sys.dm_os_wait_stats order by wait_time_ms desc;
答错不丢人。 要求不google, 五分钟作答。 第一个答对并且有具体说明的, 给1... 阅读全帖 |
|
c******o 发帖数: 1277 | 10 看看kafka的source code, 哪儿像scala?
https://github.com/apache/kafka/blob/0.8.2/core/src/main/scala/kafka/api/
ApiUtils.scala
def readShortString(buffer: ByteBuffer): String = {
val size: Int = buffer.getShort()
if(size < 0)
return null
val bytes = new Array[Byte](size)
buffer.get(bytes)
new String(bytes, ProtocolEncoding)
}
def writeShortString(buffer: ByteBuffer, string: String) {
if(string == null) {
buffer.putShort(-1)
} else {
val encodedString ... 阅读全帖 |
|
f********x 发帖数: 99 | 11 The world beyond batch: Streaming 101: A high-level tour of modern data-
processing concept
http://radar.oreilly.com/2015/08/the-world-beyond-batch-streami
by Tyler Akidau August 5, 2015
Editor’s note: This is the first post in a two-part series about the
evolution of data processing, with a focus on streaming systems, unbounded
data sets, and the future of big data.
Streaming data processing is a big deal in big data these days, and for good
reasons. Amongst them:
Businesses crave ever more tim... 阅读全帖 |
|
s**g 发帖数: 66 | 12 I guess the answer to Q1 shall be:
3 stage buffer approach leads to more jitter
Here is my reasoning:
single stage buffer jitter can be defined by
jtter_single = vn / slope
where vn is buffer input referred noise (assume the same in both cases),
slope is input signal rising/falling edge slope
since jitter from each stage is uncorrelated, we have
jitter_total = sqrt( N * (jitter_single)^2 )
where N is number of buffer stages
If we assume in both cases, buffer signal swing are the same Vswing and ... 阅读全帖 |
|
c*********d 发帖数: 9770 | 13 荒猫牛不耕微信号laoniu003005
功能介绍
好文分享
来源:荒猫之舞
作者:荒猫
中美贸易战告一段落,毫不意外地,咱们又赢了。不过与以往不同的是,这次美国也赢
了,是双赢。据报道,咱们答应了美国减少贸易逆差的要求,所以美国赢了;而因为要
减少贸易逆差,中方将大量增加自美购买商品和服务,这样可以满足咱们不断增长的消
费需求和促进高质量经济发展,所以咱们也赢了。
但让我感觉不可思议的是,这么好的事情,为什么一直不做呢?为什么要在美国政府的
逼迫下去做呢?是因为没有想到?那岂不是说那些人能力低下?是因为想到了而不做,
那岂不是证明了那些人很坏?
而且在美国高调启动贸易战之初,咱们是抱着多大的决心,宁为玉碎不为瓦全,一定要
打赢的,一定要粉碎美国人阻挡咱们大国崛起的阴谋的。当美国提出500亿的清单时,
咱们针锋相对;当美国提出1000亿的清单时,咱们继续应战;而当美国把清单的总价提
高到2000亿的时候,一夜之间,美国就不是阻挡咱们大国崛起,而是有利于咱们大国崛
起了。美国的要求原来是有利于咱们的发展,而不是遏制咱们的发展了。我恍然大悟:
原来以前的针锋相对,是用的激将法,是为了刺激美... 阅读全帖 |
|
y*********e 发帖数: 518 | 14 这个我以前写过一个notepad,大概解释一下数据结构吧。
我用的是C#写的(C#的string跟Java的string一样,是immutable的)。
这个数据结构应该支持如下功能:
1、快速的string读取,写入,以及删除
2、快速的获得某一个字符所在的行列号
3、支持较多的redo、undo
对于第一点要求,传统的string肯定不行,因为每次对string的修改都会产生一个新的
string。StringBuilder也不行,虽然它支持O(1)的Append,但是对于插入和删除最快
的还是O(N)。
考虑到第二点要求,可以用一个改进版的StringBuilder。即,每一行用一个
StringBuilder,然后行与行之间用LinkedList串联起来。这样做是假设每一行字符的
长度不会太长(大概百来个的字符删除O(N)还是很快的),然后行数也不会太长,因为
我们用的LinkedList把行数串联起来,要获得某一行的行号,也是O(N)的操作。
这就是第一版的数据结构,用它就可以实现一个简单的text editor,支持编辑不是很大
的文本文档。
这个数据结构可以改进的。我读了... 阅读全帖 |
|
g*****k 发帖数: 623 | 15 anysize_reader有一个静态buffer和一个静态index指向buffer起始位置。
当buffer中数据完全处理完毕,就调用block_reader(buffer)并且设index=0
这样即便有数据残留在buffer中,下次调用anysize_reader也是先处理buffer中的 |
|
r****k 发帖数: 21 | 16
有个bug, 当buffer里没有找到'\n'或者'\0'的时候,i的值为BSZ, 这时候你查看
buffer[i]的值,会导致错误的指针。
for (i=curr; i
{
if (buffer[i]=='\n' || buffer[i]=='\0') break;
}
...
if(buffer[i]=='\n'|| buffer[i]='\0')
{
s[ssz]='\0'; //do last job
return s; //time to returen
}
不过思路很清晰 |
|
b******g 发帖数: 77 | 17 void oddBeforeEven(int arr[], long N)
{
int count[2];
for (long k = 0; k < 2; ++k) count[k] = 0;
for (long i = 0; i < N; ++i)
if (arr[i] & 1) count[1]++
int *buffer = new int[N];
for (long i = 0; i< N; ++i)
buffer[i] = arr[i];
for (long i =0; i < N; ++i)
{ // even number will be at postion count[1], count[1] + 1, count[1]
+2, ......
if (buffer[i] & 1) arr[count[0]++] = buffer[i];
else arr[count[1]++]... 阅读全帖 |
|
r*******n 发帖数: 3020 | 18 char* buffer= (char*)malloc(size);
void read(int size,char*buffer){
int times=size/4;
int rem = size%4;
int k=0;
char buffer4[4];
for(int i=0; i
read4(buffer);
memcpy(buffer+k, buffer4, 4);
k+=4;
}
read4(buffer);
memcpy(buffer+k, buffer4, rem);
} |
|
|
j****9 发帖数: 2295 | 20 Sprintf(buffer,"%c",ESC);
Send(buffer);
Sprintf(buffer,"%s",message);
Send(buffer);
Sprintf(buffer,"rn");
Send(buffer); |
|
g********t 发帖数: 212 | 21 额 那道题目的话,完整是给你int read_buffer(char*buffer, int len),返回值是-1
或者填好的buffer的大小。如果不是-1需要可能再次调用,再取下一段。
我讨论了这些内容:
1. read_line()的返回值怎么传: 在read_line()里面分配好,还是api调用者分配好把
大小传进来? 如果用c++既有的string类,跨函数体的时候复制是怎么做的,内部内存
表示是怎样的?这些实现在这个scenario里面会有哪些缺陷?在这个scenario里会产生
内存fragmentation吗?有没有办法用一个自己管理的内存池减少fragmentation?当然
,难的设计只是提一下,也没有时间写出来。
2. 然后我用了一个read_line()自己的可以复用的固定大小buffer,一个指针指到上次
自己的内部buffer用了多少了,再遇到read_line就找下一个'n',如果用完了就把
buffer刷新。还有一些边界判定,比如上次取下来的buffer没有取满之类的。
3. 最后简化解是,最后写代码就用了unique_ptr, 里面... 阅读全帖 |
|
g********t 发帖数: 212 | 22 额 那道题目的话,完整是给你int read_buffer(char*buffer, int len),返回值是-1
或者填好的buffer的大小。如果不是-1需要可能再次调用,再取下一段。
我讨论了这些内容:
1. read_line()的返回值怎么传: 在read_line()里面分配好,还是api调用者分配好把
大小传进来? 如果用c++既有的string类,跨函数体的时候复制是怎么做的,内部内存
表示是怎样的?这些实现在这个scenario里面会有哪些缺陷?在这个scenario里会产生
内存fragmentation吗?有没有办法用一个自己管理的内存池减少fragmentation?当然
,难的设计只是提一下,也没有时间写出来。
2. 然后我用了一个read_line()自己的可以复用的固定大小buffer,一个指针指到上次
自己的内部buffer用了多少了,再遇到read_line就找下一个'n',如果用完了就把
buffer刷新。还有一些边界判定,比如上次取下来的buffer没有取满之类的。
3. 最后简化解是,最后写代码就用了unique_ptr, 里面... 阅读全帖 |
|
p*********g 发帖数: 116 | 23 有看了遍题, 发觉题目不难, 就是两人沟通不到一起,估计是语言的问题。
那个题无恙无恙一大片,看起来有些头疼。我开始都以为是读写文件的buffer了,其实
文件是持久化buffer的,这个buffer很可能是图像,或者对象buffer。 如果是我面试
官, 我会先给面试人讲个故事,讲讲这个buffer 是干什么用的,和那个文件有什么关
系。 我要怎样实现, 没有额外的外存,但是我要在关机前存储这个buffer 的内容和
状态。我拿中文说肯定讲的挺好,不过换成英文,未必能娓娓道来了。
所以面试官还是耐心些好, 而且那个那个小印回来背后说面试官不会沟通也未必不可
能。 |
|
f**********e 发帖数: 288 | 24 题目现场做,会很有压力。 楼主拍拍。
public static String getStep(String movieName){
int curCol = 0, curRow = 0;
StringBuffer buffer = new StringBuffer();
for(int i = 0; i < movieName.length(); i++){
if(i > 0 && movieName.charAt(i-1) == movieName.charAt(i)){
buffer.append("!");
} else {
int nextRow = (movieName.charAt(i) - 'a') / 5, nextCol = (
movieName.charAt(i) - 'a') % 5;
// moving col
String moving... 阅读全帖 |
|
w****a 发帖数: 710 | 25 a的高频题,最近面它们家正好准备过。发个我的答案供参考吧,感觉应该可以写得更
简单一些。
vector parse_csv(string csv) {
vector ret;
string buffer;
bool in_quote = false;
for (int i = 0; i < csv.size(); ++i) {
string append(1, csv[i]);
if (csv[i] == '"') {
if (i + 1 < csv.size() && csv[i + 1] == '"') ++i;
else append = "";
in_quote = !in_quote;
}
if (csv[i] == ',' && !in_quote) {
ret.push_back(buffer);
buffer = append... 阅读全帖 |
|
l*******c 发帖数: 523 | 26 据烙印论坛说,有人PD是09-11-2008的已经收到NVC的 Fee notice.
Reference: http://www.qesehmk.org/forums/showthread.php?148-EB2-Predictions-(Rather-Calculations)-2012/page112
以下是烙印对一月份VB的分析,感觉比较合理:
Following is the current trend based on the dashboard, Trackitt and other
news and information.
GC Issuance date based on 25K will be 15-DEC-2007 - 01-JAN-2008 by the end
of FY 2012.
Next VB (Jan 2012) in all probability will be the final intake if HR-3012
does not go through.
Possibility 50% - 2 months of additional int... 阅读全帖 |
|
i**a 发帖数: 98 | 27 From Wikipedia
The itoa (integer to ASCII) function is a widespread[citation needed] non-
standard extension to the standard C programming language. It cannot be
portably used, as it is not defined in any of the C language standards;
however, compilers often provide it through the header while in
non-conforming mode, because it is a logical counterpart to the standard
library function atoi.
void itoa(int input, char *buffer, int radix)
itoa takes the integer input value input and conv... 阅读全帖 |
|
b***1 发帖数: 124 | 28 碰巧看到的。连接在
http://forums.dpreview.com/forums/read.asp?forum=1021&message=4
Transfer speeds IS the difference. This will directly affect how quickly
your buffer fills up. Based on the technical guide, shooting uncompressed
NEF, the buffer can handle up to 16 shots of 75MB files. (I'm taking a wild
guess that the buffer is roughly 1GB based on this information) You can do
the math after that...
Shooting at 4fps will create 300MB/seconds in the buffer. Assuming you have
an SD or CF that writes at... 阅读全帖 |
|
f******6 发帖数: 67 | 29 #include
#include
int main(int argc, char *argv[])
{
int value, base;
int remainder, place=79;
char buffer[80];
line_1 //buffer[79]=(char)(0);//不加这一行就有乱码
char *table ="0123456789ABCDEF";
value = atoi(argv[1]);
base = atoi(argv[2]);
printf("%d %dn", value, base);
do {
remainder = value%base;
printf("%cn", table[remainder]);
buffer[place] = (char)(table[remainder]);
printf("%cn", buffer[place]);... 阅读全帖 |
|
c*****t 发帖数: 1879 | 30 写 stored procedure 的时候,发现 sprintf, elog, ereport 等统统
会造成 crash 。可是 8.2.6 底下好好的。比如
strcpy (buffer, "test"); 执行没问题,但是
sprintf (buffer, "%s", "test"); 就 crash。
例如:
CREATE FUNCTION TCDB.t_create_table(cstring) RETURNS void
AS '/projects/workspace/tcdb/src/server/libmy_utils.dll', 't_create_table'
LANGUAGE C STRICT;
Datum t_create_table (PG_FUNCTION_ARGS)
{
char buffer[8192];
sprintf (buffer, "%s", "test"); // 这一行 crash
// strcpy (buffer, "test"); 没问题
puts (buffer |
|
O*******d 发帖数: 20343 | 31 More memory is only good for 3D rendering. A good 3D rendering needs
multiple frame buffers, depth buffer, stencil buffer, multiple texture
buffers, even left buffer, right buffer. All take a lot of memory on a
display card. |
|
S*****y 发帖数: 567 | 32 希望有个大虾能给解释下。
版本是2.6.32-71.el6.x86_64
发现读取文件后,free mem大幅下降。文件很大,10几G的样子
total used free shared buffers cached
Mem: 32091 24459 7632 0 7 23250
-/+ buffers/cache: 1200 30891
Swap: 34271 21 34250
就是这里free/Mem那一格
网上查了说看是否内存泄漏应该看swap?
我有一个程序,读取文件。
如果我手动清理掉used Mem
echo 3 > /proc/sys/vm/drop_caches
然后跑一次那个程序。就会看到大概10个G的内存被用了,没有释放(文件大小差不多)
然后速度是1分钟。
然后在不释放那些内存的情况下,再跑n次,每次都是10秒钟。包括读取另外一个差不
多大小的文件,也是10秒钟的... 阅读全帖 |
|
m***i 发帖数: 213 | 33 在Dired下按a可以在当前buffer打开一个文件,比e或者f或者回车好,不用开新的
buffer,但是怎样退出该文件回到Dired?按a是将Dired的buffer替换成该文件,而在
该文件下再做C-x d,是建立一个新的Dired buffer,打开的文件并未关闭,不是我想
要的功能。。。
或者,emacs下怎样在当前buffer进入dired模式,不打开一个新的buffer?
谢谢! |
|
i******r 发帖数: 323 | 34 如果事先知道buffer的最大容量,自己用一个一维数组实现?
比如知道最多100个东西在buffer里
Type* buffer[101];
int front = 0;
int back = 0;
要插入就buffer[back] = &obj; back=(back+1)%101;
要pop out(?)就pObj = buffer[front]; front=(front+1)%101;
如果front==back就是empty buffer |
|
b***y 发帖数: 2799 | 35 ☆─────────────────────────────────────☆
alfven (rik) 于 (Fri Sep 5 15:19:15 2008) 提到:
还是有关udp的问题,Filter的部分已经解决了,现在问题是udp数据很快,不能完全接
收。
我尝试了两个方式:
1。接受数据thread写到deque做的buffer后面,然后让第二个thread读deque的前端,
一天下来能miss1百万条。
2。一接受到数据就直接写到Binary文件里面,一天下来Miss个6000条out of
400million条。
比较了一下两个的时间,第一个插入buffer通常要1微秒,第二个直接写才要~400ns,
觉得有点意外,是不是这个file stream的buffer要更好?
由于以后要加入real time的filter,肯定是要写在内存里面,怎么才能提高速度,不
让数据丢失呢?考虑过增加udp socket的buffer size,但是速度跟不上还是不行的。
考虑提高写buffer的速度,尝试了一下用大数组做buffer,假如不考虑thread safe, |
|
c*****t 发帖数: 1879 | 36 先把整个文件读进一个大的 char* buffer 。然后
for (...)
{
// for portable code do... change shift for different endian
x = ((buffer[i] & 0xff) << 24) |
((buffer[i + 1] & 0xff) << 16) |
((buffer[i + 2] & 0xff) << 8) |
(buffer[i + 3] & 0xff);
// otherwise can use the following
// occasioanlly may need to consider alignment
x = *(int*)&buffer[i];
i += 4;
// likewise for long etc
...
} |
|
O*******d 发帖数: 20343 | 37 OpenGL applications usually use two or three frame buffers. One of them is
the front buffer, the content of which is displayed on the screen. Other
buffers are back buffers for drawing. You draw your graph in back buffer
and switch the buffer to the front when you are done for flicker free
display. |
|
M7 发帖数: 219 | 38 这里有两个shuffle方法。第一个通过排序(乱序),第二个是标准的Fisher-Yates
shuffle, which has linear performance.
public static IEnumerable Shuffle(this IEnumerable
collection)
{
Random random = new Random();
return collection.OrderBy(item => random.Next());
}
public static IEnumerable FastShuffle(this IEnumerable
collection)
{
T[] buffer = collection.ToArray();
Random random = new Random();
for (int i = 0;... 阅读全帖 |
|
S*****y 发帖数: 567 | 39 【 以下文字转载自 Linux 讨论区 】
发信人: Schummy (QQ), 信区: Linux
标 题: 新人5个包子请教问题,redhat读写文件的内存问题
发信站: BBS 未名空间站 (Tue Apr 10 18:18:18 2012, 美东)
希望有个大虾能给解释下。
版本是2.6.32-71.el6.x86_64
发现读取文件后,free mem大幅下降。文件很大,10几G的样子
total used free shared buffers cached
Mem: 32091 24459 7632 0 7 23250
-/+ buffers/cache: 1200 30891
Swap: 34271 21 34250
就是这里free/Mem那一格
网上查了说看是否内存泄漏应该看swap?
我有一个程序,读取文件。
如果我手动清理掉used Mem
echo 3 > ... 阅读全帖 |
|
j****9 发帖数: 2295 | 40 Sprintf(buffer,"%c",ESC);
Send(buffer);
Sprintf(buffer,"%s",message);
Send(buffer);
Sprintf(buffer,"rn");
Send(buffer); |
|
S*A 发帖数: 7142 | 41 这个问题我和 brainless 在另外一个贴里面有比较深入的讨论了。
http://www.mitbbs.com/article_t1/Programming/31330685_0_7.html
这个在建立空的 TCP 连接的时候是不需要的。也就是说,现在
的 Linux 还是比较聪明的,不会在没有需要的时候把buffer 白白
预留在那里。
buffer 就是以 sk_buff 的形式存在的,是有数据进来的时候才
分配。IP fragment 就是用buffer的其中一部分,对网卡就是改
buffer地址和长度,没有什么难度。要把几个用户的send buffer
合并到一个 ip 包里面,依然可以用网卡驱动直接完成。现在网卡
有 scatter/gather list, 你可以把几个不同的buffer直接告诉网卡
用一个包发出去。只有特别老的网卡不支持 scatter/gather list.
我记得以前特别著名的 NE2000 就是那样,现在应该没有那种网卡
了。 |
|
S*A 发帖数: 7142 | 42 这个问题我和 brainless 在另外一个贴里面有比较深入的讨论了。
http://www.mitbbs.com/article_t1/Programming/31330685_0_7.html
这个在建立空的 TCP 连接的时候是不需要的。也就是说,现在
的 Linux 还是比较聪明的,不会在没有需要的时候把buffer 白白
预留在那里。
buffer 就是以 sk_buff 的形式存在的,是有数据进来的时候才
分配。IP fragment 就是用buffer的其中一部分,对网卡就是改
buffer地址和长度,没有什么难度。要把几个用户的send buffer
合并到一个 ip 包里面,依然可以用网卡驱动直接完成。现在网卡
有 scatter/gather list, 你可以把几个不同的buffer直接告诉网卡
用一个包发出去。只有特别老的网卡不支持 scatter/gather list.
我记得以前特别著名的 NE2000 就是那样,现在应该没有那种网卡
了。 |
|
S*A 发帖数: 7142 | 43
度?
你的程序 j=1 是错的,任何数字可以被 1 整除。
如果可以用内存换时间的话可以快很多:
你的改正过的程序,
time ./a.out
9592
real 0m0.426s
user 0m0.424s
sys 0m0.000s
我的:
time ./a.out
9592
real 0m0.001s
user 0m0.000s
sys 0m0.000s
N = 1000000 貌似快了 400 倍?
更大的数更快。
int nPrime(int N)
{
int n= N/2 - !(N & 1);
char *buffer;
int i,j;
int count =1;
if (N<3)
return N == 2;
buffer = calloc(1,n);
if (!buffer)
return -1;
for (i=1; i
int step;
if (buffer[i])
... 阅读全帖 |
|
r***s 发帖数: 737 | 44 大牛们相互鄙视完了谁也不解释。
我来冲个大头说一下我知道的一点点
异步log无非就是用户程序写进内存buffer,另外一个异步的线程负责往外写。这个
buffer大部分
时候是多个线程共用的,问题在于如何不用锁来保护这个buffer?
先说用户程序里的多个线程都要写进一个buffer,怎么防止互相覆盖? buffer维护一
个指针
write_edge,要往里写的线程知道自己要写多少字节size,然后用 atomic increment
把这个指针
往右移动:interlocked_increment(&write_edge, size), 最后在这个指针左边写入。
这样可以保证不互相覆盖。
下一步看往外写的那个线程和其他线程如何同步。 buffer物理上是带状的,有开始和
结束。把它想象成一个逻辑环,有两个指针,read_edge和write_edge,每次有人写入
write_edge 右移,往外写Log的时候read_edge右移,只要保证read_edge一直在write_
edge 后面一定安全距离就可以了。
这个实现有些问题。 很多人认为世上没有真正lock free的东西... 阅读全帖 |
|
g****t 发帖数: 31659 | 45 coding就是行为艺术。
我折腾了emacs已经有的下面的东西。
ob-julia,ess-julia,julia-mode,julia-shell
现在整理出来的行为流程如下:
1。org-mode里面用julia-mode写一个source block。
(session mode不work,不知道原因)
(不要用ess-julia,据说是history文件少个下划线,卡死了。
我试图改代码重新bytecompile ess里面的文件,因为公司电脑权限问题又卡死了)
2。run一个julia shell。
3。用如下程序把org-mode里选中的code发到julia shell。
快速双击jj即可。
(defun p-send(start end)
(interactive "r") ;;Make the custom function interactive and operative on
a region
(append-to-buffer (get-buffer "*Julia*") start end) ;;append to the buffer
named... 阅读全帖 |
|
g****o 发帖数: 1284 | 46 I know in traditional I/O, we usually hire two buffers to handle the I/O
operation: a kernel buffer and a user buffer. If a thread send a read request,
it traps in the kernel and blocks. Data first is transferred from device to
kernel buffer, and from kernel buffer to user buffer at last. After the
transferring is finished, the thread returns from kernel and continue its
execution.
Suppose I want to implement asynchronous I/O like this way: A user lever
thread sends a read request then immediate |
|
f*********r 发帖数: 1233 | 47 与细胞/组织匀浆不同,血清中dna极低。粘稠主要因为蛋白和血脂。楼上说超高速离心
,是个不错的办法。能够去掉很多悬浊微粒。如果样品量有限,可以加过lysis buffer
以后再离心。
稀释总蛋白浓度。如果5ul/well这个量不能再降低,可以象楼上所说,用大胶、厚胶,
想办法增加volume/well。
如果有条件,可以用filter过滤掉不需要的蛋白。一般,条带扭曲多发生在小分子量。我估计你要的蛋白就不大。那么,你可以根据分子量,过滤掉大分子蛋白。millipore就有很多不同孔径的过滤系统可供选择。
条带形状不规整,很大程度上还因为蛋白denature得不够好。可以适当在loading buffer里增加sds浓度。
由于loading buffer与running buffer之间在表面活性上有差异,可以造成条带的扭曲
。为此,可以选用taurin buffer(代替glycin buffer)以弱化条带扭曲。甚至,有的
pi曾经建议,在上样之前,空跑至少10分钟。
用一般的样品跑胶,那么胶的品牌与型号之间的优劣不是很明显。你的sample比较特殊
,可能就放大了各厂家产品之间 |
|
h**********r 发帖数: 671 | 48 你的应该没问题吧。对的,我的意思是可以用稀释的Taq buffer洗,taq buffer 一般
也是碱性的。保证reacttion mix是1X的就可以了。
因为我以前的洗脱体积有点大,感觉反应的时候最后都是EB buffer,不是reaction
buffer.虽然EB buffer应该没啥影响。
就用了稀释的taq buffer,当然不含mgcl2,dNTP啥的。 |
|
h**********r 发帖数: 671 | 49 你的应该没问题吧。对的,我的意思是可以用稀释的Taq buffer洗,taq buffer 一般
也是碱性的。保证reacttion mix是1X的就可以了。
因为我以前的洗脱体积有点大,感觉反应的时候最后都是EB buffer,不是reaction
buffer.虽然EB buffer应该没啥影响。
就用了稀释的taq buffer,当然不含mgcl2,dNTP啥的。 |
|