GVKun编程网logo

为什么 Heroku Web 应用程序在 Flask 中的运行速度比 localhost 慢得多?

3

在这篇文章中,我们将为您详细介绍为什么HerokuWeb应用程序在Flask中的运行速度比localhost慢得多?的内容。此外,我们还会涉及一些关于C++ifstream.getline()比Jav

在这篇文章中,我们将为您详细介绍为什么 Heroku Web 应用程序在 Flask 中的运行速度比 localhost 慢得多?的内容。此外,我们还会涉及一些关于C ++ ifstream.getline()比Java的BufferedReader.readLine()慢得多?、Flask Web 应用程序在 Heroku 中崩溃,在我的计算机服务器中正常、Flask 入门一( flask 框架和 flask-script 库)、Flask 最强攻略 - 跟 DragonFire 学 Flask - 第一篇 你好,我叫 Flask的知识,以帮助您更全面地了解这个主题。

本文目录一览:

为什么 Heroku Web 应用程序在 Flask 中的运行速度比 localhost 慢得多?

为什么 Heroku Web 应用程序在 Flask 中的运行速度比 localhost 慢得多?

如何解决为什么 Heroku Web 应用程序在 Flask 中的运行速度比 localhost 慢得多?

我正在构建一个使用 Vue + Flask + sqlite 的基本 Web 应用程序,并且该应用程序在本地主机上运行得非常快。大部分数据处理是用 Pandas 完成的,查看 localhost 日志,数据处理进行得非常快,因此加载网站也非常快。然而,一旦我将网站部署到 Heroku,根据他们的日志,数据处理速度减慢了大约 5 倍。有谁知道可能导致此问题的原因是什么?

解决方法

你的 PC 有更多的资源,heroku 服务器。

https://devcenter.heroku.com/articles/dyno-types

除非您为顶级服务器付费,否则我认为您不会。

,

您的问题并非独一无二。从本地主机到商业服务器,尤其是在较低层,可能会降低应用程序 2-3 倍的速度。 但是,就您而言,5x 有点太多了。问题应该出在您的代码中。此外,如果您能提及任何显着减慢的代码块,那就太好了。 以下是一些需要改进的地方:

  1. 功能改进: 阅读不同函数的时间复杂度。一般来说,避免循环 - for、while。

  2. 数据库改进: 确保您没有从服务器一次获取非常大的数据。分部分做。此外,为每个小数据块查询数据库同样是错误的。 这里要注意的另一点是,不要在一个表中保存一大块数据并多次从中获取小块数据。拆分您的表格。

  3. 另一个常见的错误是将易于计算的值保存在数据库中。避免将数据推送到数据库进行计算。将它们保存在本地环境或会话中。

  4. 我希望您不要过多地移动或使用 CSV 之类的文件。数据帧速度更快。

C ++ ifstream.getline()比Java的BufferedReader.readLine()慢得多?

C ++ ifstream.getline()比Java的BufferedReader.readLine()慢得多?

我正在重写我的一个Android应用程序以利用NDK,并且它每次要做的第一件事之一是打开一个1.5MB的文本文件(大约15万行),并将每一行放入数据中结构体。当我使用Java的BufferedReader.readLine()进行此操作时,从SD卡读取文件大约需要2.5秒。这是我用于此的代码:

try {    BufferedReader br = new BufferedReader(new FileReader("/sdcard/testfile.txt"));    String thisLine;    while ((thisLine = br.readLine()) != null) {        Log.d(TAG, thisLine);    }} catch (IOException e) {    //Log error}

将C 与ifstream一起使用需要更长的时间…对于同一文件大约需要3分钟。这是我在C 中使用的代码:

char buffer[256];ifstream ifs;ifs.open("/sdcard/testfile.txt", ifstream::in);if (ifs.is_open()) {    while (!ifs.eof()) {        ifs.getline (buffer,100);        LOGD(buffer);    }}

我对C
相当生疏,但是对于增加的读取时间却无法想到任何合理的解释。有一阵子我以为可能是LOGD函数,但是我尝试将其全部删除,而读取时间并没有真正帮助。有人对这个问题可能有什么想法吗?有没有更快的方法在C
中逐行读取文件?谢谢。

答案1

小编典典

一种想法是stdio同步可能会拖慢您的速度。可以关闭。我不知道这是否可以解决所有差异,但是您可以尝试。另外,您使用不eof()正确。最后,我将使用std
:: string版本的getline()

std::ios::sync_with_stdio(false);ifstream ifs("/sdcard/testfile.txt");std::string line;while (getline(ifs, line)){    LOGD(line);}

我尚未测试此代码,但是您可以尝试一下,看看它是否有所不同。

Flask Web 应用程序在 Heroku 中崩溃,在我的计算机服务器中正常

Flask Web 应用程序在 Heroku 中崩溃,在我的计算机服务器中正常

这可能是您的 Procfile 中的错误。 将您的 Procfile 更改为:

web: gunicorn --bind 0.0.0.0:$PORT flaskapp:app

Flask 入门一( flask 框架和 flask-script 库)

Flask 入门一( flask 框架和 flask-script 库)

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=


watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

       

    今天小婷儿给大家分享的是Flask 入门一( flask 框架和 flask-script 库)。


Flask 入门一( flask 框架和 flask-script 库)          



Flask 入门一( flask 框架 和 flask-script 库)

 

一、Flask框架:

 

1、简介

Flask是一个非常小的Python Web框架,被称为微型框架;只提供了一个稳健的核心,其他功能全部是通过扩展实现的;意思就是我们可以根据项目的需要量身定制,也意味着我们需要学习各种扩展库的使用。

2、组成

1)Wsgi系统、调试、路由

2)模板引擎(Jinja2,是Flask核心开发者人员开发的)

3)安装:pip install flask

4)视图函数使用说明

a: 路由末尾的'/'建议都加上,防止手误多敲路由末尾'/'引起的路由错误;

b: 若需要指定参数,参数写在<>中,视图函数中需要对应的同名的参数;

c: 若需要指定参数类型,如:int/float/path,类型写在参数之前,使用 ':' 与参数分割;

d: 若不指定参数类型,参数默认是str类型,path其实也是str类型,只是'/'作为普通字符处理而已;

5)完整代码:

from flask import Flask

app = Flask(__name__)

@app.route('/')

def index():

    return 'Hello Flask !'

if __name__ == '__main__':

    app.run()

5) 终端启动:

app.run(debug=True, threaded=True, host='0.0.0.0', port=5050)

6)启动参数说明

Debug:是否开启调试模式,默认为False;开启后有调试信息,会自动加载文件;

Threaded:是否开启多线程,默认是关闭的;

Host:默认为127.0.0.1,设置为'0.0.0.0'之后可以通过IP进行访问,设置端口,默认为5000

 

二、flask-script库

1、简介

简单来说,就是一个flask终端启动参数解析工具;这样我们就可以不更改代码完成不同方式的启动。

2、使用

1)导入类库:from flask_script import Manager

2)创建对象:manager = Manager(app)

3)启动代码:if __name__ == '__main__':
             manager.run()

4)终端启动:python manage.py runserver -d -r -h 0.0.0.0 -p 5000

3、启动参数说明

1)-h, --host    指定主机

2)-p, --port    指定端口

3)-d         开启调试模式

4)-r        代码修改后自动加载

5)-?, --help    查看帮助信息

 


Flask 最强攻略 - 跟 DragonFire 学 Flask - 第一篇 你好,我叫 Flask

Flask 最强攻略 - 跟 DragonFire 学 Flask - 第一篇 你好,我叫 Flask

首先,要看你学没学过 Django 如果学过 Django 的同学,请从头看到尾,如果没有学过 Django 的同学,并且不想学习 Django 的同学,轻饶过第一部分

一. Python 现阶段三大主流 Web 框架 Django Tornado Flask 对比

1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等,不管你用得到用不到,反正它全都有,属于全能型框架

2.Tornado 主要特点是原生异步非阻塞,在 IO 密集型应用和多任务处理上占据绝对性的优势,属于专注型框架

3.Flask 主要特点小而轻,原生组件几乎为 0, 三方提供的组件请参考 Django 非常全面,属于短小精悍型框架

Django 通常用于大型 Web 应用由于内置组件足够强大所以使用 Django 开发可以一气呵成

Tornado 通常用于 API 后端应用,游戏服务后台,其内部实现的异步非阻塞真是稳得一批

Flask 通常应用于小型应用和快速构建应用,其强大的三方库,足以支撑一个大型的 Web 应用

Django 优点是大而全,缺点也就暴露出来了,这么多的资源一次性全部加载,肯定会造成一部分的资源浪费

Tornado 优点是异步,缺点是干净,连个 Session 都不支持

Flask 优点是精悍简单,缺点是你不会!哈哈哈哈哈哈!

 

二. Flask 的安装与 HelloWorld

Flask 的安装特别难,但是以一个多年奋斗在程序界的我,肯定会找出一个最简单的方法教你们,具体操作如下:

pip install Flask

别问我还有没有复杂的方法,没有!

Flask 安装完成了,下面使用 Flask 走一遍仪式:

就不给你代码,就自己写

实现了 Flask 的第一个 HelloWorld 程序,恭喜恭喜!

解读一下代码

启动了 Flask, 得到了返回值,打印在页面上

第一篇,到此结束

关于为什么 Heroku Web 应用程序在 Flask 中的运行速度比 localhost 慢得多?的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于C ++ ifstream.getline()比Java的BufferedReader.readLine()慢得多?、Flask Web 应用程序在 Heroku 中崩溃,在我的计算机服务器中正常、Flask 入门一( flask 框架和 flask-script 库)、Flask 最强攻略 - 跟 DragonFire 学 Flask - 第一篇 你好,我叫 Flask等相关知识的信息别忘了在本站进行查找喔。

本文标签: