我想对我的websocket服务器运行一些压力测试运行这个javascript示例在我的浏览器(chrome)下面:
function create_ws() {
var ws=new WebSocket("ws://127.0.0.1/");
ws.onopen=function(evt){
var binary = new Uint8Array(2);
binary[0]=1;
binary[1]=2;
ws.send(binary.buffer);
};
ws.onclose=function(evt){};
ws.onmessage=function(evt){};
ws.onerror=function(evt){};
}
var connections = [];
var numberOfconnections=100;
for(var i = 0; i < numberOfconnections; i++) {
connections.push(create_ws());
}
Run Code Online (Sandbox Code Playgroud)
问题是上面的脚本让我同时只运行大约100个连接.如果我增加到 numberOfconnections300,它会抛出以下错误:
WebSocket connection to 'ws://127.0.0.1/' failed: Error in connection establishment: net::ERR_INSUFFICIENT_RESOURCES
有没有办法增加浏览器中的websocket连接数?
是否可以在下面嵌套关键部分?:
void somefunction()
{
EnterCriticalSection(&g_List);
...
EnterCriticalSection(&g_Variable);
...
LeaveCriticalSection(&g_Variable);
...
LeaveCriticalSection(&g_List);
}
Run Code Online (Sandbox Code Playgroud) 下面是代码,让我感到困惑:
class Simple{
private:
int m_nID;
public:
Simple(int nID) {
m_nID = nID;
}
~Simple() {
std::cout << "Destructing Simple " << m_nID << std::endl;
}
Simple(const Simple& other) {
m_nID = other.m_nID;
};
};
int main(){
Simple Simple1(1); // allocating on stack
Simple Simple2(2); //
Simple Simple3(3); //
std::vector<Simple> m;
m.push_back(Simple1); //
m.push_back(Simple2); // copy constructor called
m.push_back(Simple3); //
std::cout << "\n------ ERASING ELEMENTs FROM VECTOR-------" << std::endl;
m.erase(m.begin()); //
m.erase(m.begin()); // destructor called
m.erase(m.begin()); //
std::cout << "\n------ …Run Code Online (Sandbox Code Playgroud) 这是我的结构包含向量:
typedef struct _player
{
char id;
char nick[30];
std::vector<SOCKET> mVector;
} player, *PPER_player;
//allocating and freeing part
lpplayer = (PPER_player) malloc(sizeof(player));
lpplayer->mVector.push_back(socket1);
lpplayer->mVector.push_back(socket2);
....
free(lpplayer);
Run Code Online (Sandbox Code Playgroud)
是否足以删除(免费)这个含有向量的结构?
编辑:示例2
typedef struct player
{
char id;
char nick[30];
std::vector<SOCKET> mVector;
} player, *PPER_player;
//allocating and freeing part
player * lpplayer = new player;
lpplayer->mVector.push_back(socket1);
lpplayer->mVector.push_back(socket2);
....
delete lpplayer;
Run Code Online (Sandbox Code Playgroud)