软件测试网站下订单的功能比较慢的原因

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36761831/article/details/80713760
查找原因前,先分析整个业务流:
     浏览器(客户端)发送请求 -> 网络1->生成订单的服务 ->网络2 -> 数据库各种操作 -> 网络3-> 生成订单服务整理返回的数据 -> 网络4 -> 浏览器(客户端)接收返回的数据并展示
    1、客户端电脑配置比较差导致慢  (换一个配置高的电脑试一试)
    2、客户端的前端代码没有优化,  通过fiddler查看接口返回时间和实际展现时间的差值   
    3、网络1  网络较差    ping一下看看响应时间
    4、生成订单的算法没有优化,   通过iddler捕获接口的响应时间
    5、生成订单请求量比较大导致慢, 通过统计数据分析,慢的时候的生成订单请求数量, 增加生成订单的服务节点看能不能变快
    6、数据库的语句比较慢, 这个是可以通过日志查看sql语句的执行时间
    7、服务器配置比较低, 可以通过top命令查看各项资源的占用情况
    8、连接数据库比较耗时, 询问开发是否是做了数据库连接池
展开阅读全文

如何请求某个网站下的html页面数据?

07-02

用C++编写一个程序,用于请求某个网站某个分类下的一个html页面数据rn程序可以取到形如"www.sina.com"、"hall.91mq.com"网址的数据,但是无法请求到"www.sina.edu\cet4\cet4.html"、"hall.91mq.com\mg.defp1.html"的数据,请大家帮我看看,谢谢!rn[code=C/C++]rn#include rn#include rn#include rn#include "winsock2.h"rn#include rnrn#pragma comment(lib, "ws2_32.lib")rn#define DEFAULT_PAGE_BUF_SIZE 1048576rnrnusing namespace std;rnvoid main()rnrn WSADATA wsaData;rn int err;rn err = WSAStartup(MAKEWORD(2,2), &wsaData);rn if( err != 0 )rn rn return;rn rnrn // timer is startrn clock_t start, finish;rn double duration;rn start = clock();rnrn char host[] = "www.sina.com.cn";rn char *request = "GET / HTTP/1.0\r\nHost: www.sina.com.cn\r\nConnection: Close\r\n\r\n";rnrn struct hostent *hp;rn hp = gethostbyname(host);rn if(hp == NULL)rn rn cout << "gethostbyname() error in GetIpByHost: " << host << endl;rn return;rn rnrn // 获取域名对应的IPrn struct in_addr inAddr;rn LPSTR lpAddr;rn lpAddr = hp->h_addr;rn memmove(&inAddr,lpAddr,4);rnrn int sock, ret = 0, optval = 1;rn struct sockaddr_in sa;rn sa.sin_family = AF_INET; rn sa.sin_port = htons(80);rn sa.sin_addr.s_addr = inet_addr(inet_ntoa(inAddr));rnrn sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);rn connect(sock, (SOCKADDR*)&sa, sizeof(sa));rn if(sock == -1)rn rn return;rn rn if(sock == -2)rn rn return;rn rnrn // send the "GET" datarn ret = send(sock, request, strlen(request), 0);rnrn // 网页内容长度。可以从http头部数据中获取 "Content-Length:"rn int m_nContentLength = DEFAULT_PAGE_BUF_SIZE;rnrn char *pageBuf;rn pageBuf = (char *)malloc(m_nContentLength);rn memset(pageBuf, 0, m_nContentLength);rnrn int bytesRead = 0;rn while(ret > 0)rn rn ret = recv(sock, pageBuf + bytesRead, m_nContentLength - bytesRead, 0);rnrn if(ret > 0)rn rn bytesRead += ret;rn rn rn pageBuf[bytesRead] = '\0';rnrn cout << bytesRead << endl;rnrn // write the html content to the filern ofstream ofs;rn ofs.open("ofs.txt");rn ofs << pageBuf << endl;rnrn ofs.close();rn free(pageBuf);rn closesocket(sock);rn WSACleanup();rnrn // timer is finishrn finish = clock();rn duration = (double)(finish - start) / CLOCKS_PER_SEC;rn cout << "have cost " << duration << " seconds\n";rnrn return;rnrn[/code] 论坛

没有更多推荐了,返回首页