Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

上传大文件内存溢出 #199

Closed
mmmoon66 opened this issue Aug 21, 2023 · 10 comments
Closed

上传大文件内存溢出 #199

mmmoon66 opened this issue Aug 21, 2023 · 10 comments
Labels
寻求帮助 Extra attention is needed

Comments

@mmmoon66
Copy link

mmmoon66 commented Aug 21, 2023

问题描述

上传大文件内存溢出导致应用Crash

期望行为

大文件能够正常上传成功

如何复现

截图

image
image

异常堆栈信息或者手机截图/视频(拖拽到输入框即可上传)

版本

  • Net: 3.6.0
  • OkHttp:
  • Android:
  • Gradle:
  • Android Studio:
@mmmoon66 mmmoon66 added the 寻求帮助 Extra attention is needed label Aug 21, 2023
@liangjingkanji
Copy link
Owner

liangjingkanji commented Aug 21, 2023

你看下是不是 #174 问题, 但是我认为你应该不至于线上项目开通知栏日志吧

我实测上传或下载3gb都没问题

@liangjingkanji
Copy link
Owner

我千辛万苦改成协成同步请求, 你给改回Flow接口回调, 你图的什么?

@liangjingkanji
Copy link
Owner

我看到你线上环境你有使用HttpLoggingInterceptor, 这个日志拦截器会输出文件内容导致oom, 和Net无关

image

@mmmoon66
Copy link
Author

#174

你看下是不是 #174 问题, 但是我认为你应该不至于线上项目开通知栏日志吧

我实测上传或下载3gb都没问题

多谢了,确实是开启了OKHttp日志导致的。线上日志是关闭的,这个是debug包遇到的问题...

@mmmoon66
Copy link
Author

我千辛万苦改成协成同步请求, 你给改回Flow接口回调, 你图的什么?

项目组的开发规范,不让直接在Fragment里直接引用DataSource, 只能通过Repository暴露suspend方法或者flow,再通过ViewModel暴露给Fragment...

@liangjingkanji
Copy link
Owner

你们工资应该是按行数算的吧

@mmmoon66
Copy link
Author

你们工资应该是按行数算的吧

这不是google推的一套架构吗,项目组的同学都严格按照这个套路来开发,上手也比较容易,review也比较容易。不然大家都随心所欲地按自己喜好开发,不就乱套了吗...

@liangjingkanji
Copy link
Owner

liangjingkanji commented Aug 21, 2023

少写点才是真, 按照规范开发也不是写一堆无效代码, 你们这么厚重的代码量很难review, 加个接口要review好几个文件

你看BRV的demo才多少代码量, 我感觉安卓开发者喜欢套别人模板, 不喜欢思考收益

个别安卓写个请求比后端写个接口还复杂

@liangjingkanji
Copy link
Owner

liangjingkanji commented Aug 21, 2023

我早期写安卓的时候就很反感一堆人去封装大量请求方法, 每个接口或者网络请求框架都要写getXX, postXX

所以文档都要求全部使用Post<Data>(Api.PATH)形式, 个别复用率极高的才建议HttpUtils.getUserInfo()

任何异步任务都建议使用协程写同步代码, 除非是监听数据库这种形式才写接口回调

@liangjingkanji
Copy link
Owner

liangjingkanji commented Aug 21, 2023

什么年代了还写一堆接口回调处理异步任务, "安卓返祖现象"

前端/后端客/户端谁还写接口回调网络请求

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
寻求帮助 Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants