widget.cpp 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. #include "widget.h"
  2. #include "./ui_widget.h"
  3. #include <QNetworkReply>
  4. #include <QNetworkAccessManager>
  5. #include <QNetworkRequest>
  6. #include <QTimer>
  7. #include <QNetworkProxy>
  8. #include <iostream>
  9. #include <regex>
  10. #include <stdlib.h>
  11. #include "QtFtp.h"
  12. #include "spdlog/spdlog.h"
  13. #include "fmtlog.h"
  14. #include "LightLog.h"
  15. Widget::Widget(QWidget *parent)
  16. : QWidget(parent)
  17. , ui(new Ui::Widget)
  18. {
  19. ui->setupUi(this);
  20. m_curlFtp.setFtpIPAndPort("192.168.50.100", 21);
  21. m_curlFtp.setFtpUsernameAndPassword("microsoft", "19980714Lq");
  22. SPDLOG_INFO("***** Qt Library *****");
  23. }
  24. Widget::~Widget()
  25. {
  26. delete ui;
  27. }
  28. void Widget::on_pBtn_connect_clicked()
  29. {
  30. SPDLOG_INFO("点击了“连接按钮”");
  31. std::vector<std::string> list;
  32. m_curlFtp.getFileList("/SSD2/Video", list);
  33. for(const std::string& filename : list)
  34. {
  35. QString qfilename = QString::fromLocal8Bit(filename.c_str());
  36. SPDLOG_INFO("{}", qfilename.toStdString());
  37. }
  38. }
  39. void Widget::on_pBtn_downloadFile_clicked()
  40. {
  41. SPDLOG_INFO("点击了“下载文件”");
  42. std::vector<std::string> fileList;
  43. bool ret = m_curlFtp.downloadFile("/SSD2/Video/哪吒之魔童降世.mp4", QApplication::applicationDirPath().toStdString() + "/哪吒之魔童降世.mp4");
  44. if(ret)
  45. {
  46. SPDLOG_INFO("下载成功");
  47. }
  48. else
  49. {
  50. SPDLOG_INFO("下载失败");
  51. }
  52. }
  53. void Widget::on_pBtn_downloadVideo_clicked()
  54. {
  55. SPDLOG_INFO("点击了“下载视频”");
  56. // std::shared_ptr<QtFtp> ftp = std::make_shared<QtFtp>();
  57. // ftp->setHostAndPort("192.168.50.100");
  58. // ftp->setUserPasswd("microsoft", "19980714Lq");
  59. // QString localPath = QApplication::applicationDirPath() + "/v1.mp4";
  60. // ftp->getFile(localPath, "/SSD1/Video/v1.mp4");
  61. // ftp->waitFinished(-1);
  62. // if(ftp->getResult())
  63. // {
  64. // SPDLOG_INFO("下载成功");
  65. // }
  66. // else
  67. // {
  68. // SPDLOG_INFO("下载失败");
  69. // }
  70. bool ret = m_curlFtp.createDirectories("SSD1/DOC/123/234");
  71. if(ret)
  72. {
  73. SPDLOG_INFO("文件夹创建成功");
  74. }else {
  75. SPDLOG_WARN("文件夹创建失败");
  76. }
  77. }
  78. void Widget::on_pBtn_logSpeed_clicked()
  79. {
  80. SPDLOG_INFO("点击了“日志速度”");
  81. /* 开始时间点1 */
  82. std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now();
  83. for(int i = 0; i < 100000; i++)
  84. {
  85. SPDLOG_INFO("{}", "你好,这是日志速度的对比,这个是SPDLOG在打印日志");
  86. }
  87. /* 结束时间点1 */
  88. std::chrono::steady_clock::time_point spdlogEnd = std::chrono::steady_clock::now();
  89. for(int i = 0; i < 100000; i++)
  90. {
  91. FMTLOG_INFO("{}", "你好,这是日志速度的对比,这个是FMTLOG在打印日志");
  92. }
  93. std::chrono::steady_clock::time_point fmtlogEnd = std::chrono::steady_clock::now();
  94. /* 使用std::cout */
  95. for(int i = 0; i < 100000; i++)
  96. {
  97. std::cout << "你好,这是日志速度的对比," << "这个是std::cout在打印日志" << std::endl;
  98. }
  99. std::chrono::steady_clock::time_point coutEnd = std::chrono::steady_clock::now();
  100. /* 使用printf */
  101. for(int i = 0; i < 100000; i++)
  102. {
  103. printf("%s\n","你好,这是日志速度的对比,这个是printf在打印日志");
  104. }
  105. std::chrono::steady_clock::time_point printfEnd = std::chrono::steady_clock::now();
  106. /* 使用QDebug */
  107. for(int i = 0; i < 100000; i++)
  108. {
  109. qDebug() << "你好,这是日志速度的对比," << "这个是QDebug在打印日志";
  110. }
  111. std::chrono::steady_clock::time_point qDebugEnd = std::chrono::steady_clock::now();
  112. /* 使用LightLog */
  113. for(int i = 0; i < 100000; i++)
  114. {
  115. QLOG_INFO("你好,这是日志速度的对比," + "这个是LightLog在打印日志");
  116. }
  117. std::chrono::steady_clock::time_point lightLogEnd = std::chrono::steady_clock::now();
  118. /* 计算时间 */
  119. std::chrono::duration<double> spdlogTime = std::chrono::duration_cast<std::chrono::duration<double>>(spdlogEnd - start);
  120. std::chrono::duration<double> fmtlogTime = std::chrono::duration_cast<std::chrono::duration<double>>(fmtlogEnd - spdlogEnd);
  121. std::chrono::duration<double> coutTime = std::chrono::duration_cast<std::chrono::duration<double>>(coutEnd - fmtlogEnd);
  122. std::chrono::duration<double> printfTime = std::chrono::duration_cast<std::chrono::duration<double>>(printfEnd - coutEnd);
  123. std::chrono::duration<double> qDebugTime = std::chrono::duration_cast<std::chrono::duration<double>>(qDebugEnd - printfEnd);
  124. std::chrono::duration<double> lightLogTime = std::chrono::duration_cast<std::chrono::duration<double>>(lightLogEnd - qDebugEnd);
  125. /* 打印时间 */
  126. SPDLOG_INFO("SPDLOG打印耗时: {}", spdlogTime.count());
  127. SPDLOG_INFO("FMTLOG打印耗时: {}", fmtlogTime.count());
  128. SPDLOG_INFO("std::cout打印耗时: {}", coutTime.count());
  129. SPDLOG_INFO("printf打印耗时: {}", printfTime.count());
  130. SPDLOG_INFO("QDebug打印耗时: {}", qDebugTime.count());
  131. SPDLOG_INFO("LightLog打印耗时: {}", lightLogTime.count());
  132. }