Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/installation/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blazor消耗了太多内存_Blazor_Visual Studio Mac - Fatal编程技术网

Blazor消耗了太多内存

Blazor消耗了太多内存,blazor,visual-studio-mac,Blazor,Visual Studio Mac,我在测试Blazor时发现了一些奇怪的东西,可能是我做错了什么,但结果真的很奇怪。这不是虚拟机,只是我的笔记本电脑(MacBookPro 16GB Ram)和一个装有sql server linux的docker容器 我用一个对象作为参数创建了一个名为Buildertest的新组件。如果运行该项目,dotnet至少会消耗70gb的Ram和大量的CPU(这是奇怪的部分)。通常VisualStudio几乎可以立即将我带到chrome的主页,但这次不行。我认为代码非常简单: /index.razor:

我在测试Blazor时发现了一些奇怪的东西,可能是我做错了什么,但结果真的很奇怪。这不是虚拟机,只是我的笔记本电脑(MacBookPro 16GB Ram)和一个装有sql server linux的docker容器

我用一个对象作为参数创建了一个名为Buildertest的新组件。如果运行该项目,dotnet至少会消耗70gb的Ram和大量的CPU(这是奇怪的部分)。通常VisualStudio几乎可以立即将我带到chrome的主页,但这次不行。我认为代码非常简单:

/index.razor:

@page "/"
@using Loginnmodels2.Data
@inject IModalService Modal

<h1>Hello, world!</h1>

Welcome to your new app.


<buildertest generic_object="a" />

@code
{
    private UserHasCases a = new UserHasCases();
}
当然,我对Blazor是新手,但我的猜测是,类buildertest的参数在某种程度上阻止了某些东西

有什么想法吗?我正在使用Visual Studio for Mac

活动监视器屏幕截图

UserHasCases类:

使用系统;
使用System.ComponentModel.DataAnnotations.Schema;
使用System.ComponentModel.DataAnnotations;
命名空间Loginnmodels2.Data
{
公共类用户案例
{
公共用户usr{get;set;}
公共案例连接_案例{get;set;}
公共整数序列{get;set;}
[Key][DatabaseGenerated(DatabaseGeneratedOption.Identity)]公共Int64整数计数器{get;set;}
}
}
这是我作为服务创建的类

using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
//using System.Data.Entity;
using Loginnmodels2.Data;
using Microsoft.EntityFrameworkCore;

namespace Loginnmodels2.DataServices
{
    public interface IUserDataService
    {
        Task<List<Data.User>> Get();
        Task<Data.User> Get(string usr_name);
        Task<Data.User> Add(Data.User a);   
        Task<List<Data.UserHasCases>> GetCases(User param_usr);
        void Delete(Data.User a);
    }

    public class UserDataService : IUserDataService
    {
        dbcontext1 _context;

        public UserDataService(dbcontext1 ctx)
        {
            _context = ctx;
        }

        public async Task<List<Data.User>> Get()
        {
            return await _context.Users.ToListAsync();
        }

        public async Task<Data.User> Get(string usr_name)
        {
            return await GetAllUsers().Where(x => x.user_name == usr_name).FirstOrDefaultAsync();
        }

        public async Task<Data.User> Add(Data.User a)
        {
            _context.Users.Add(a);
            await _context.SaveChangesAsync();
            return a;
        }

        public async void Delete(Data.User a)
        {
            _context.Users.Remove(a);
            await _context.SaveChangesAsync();            
        }

        public IQueryable<User> GetAllUsers()
        {
            return _context.Users.AsQueryable();
        }

        private IQueryable<UserHasCases> GetAllCases()
        {
            return _context.UserCaseRelation.AsQueryable();
        }

        public async Task<List<Data.UserHasCases>> GetCases(User param_usr)
        {
            return await GetAllCases().Where(x => x.usr == param_usr).ToListAsync();
        }

        public async Task<List<Data.UserHasCases>> GetAllValidCases()
        {
            return await GetAllCases().Where(x => x.connected_case.is_valid == true).ToListAsync();
        }

    }
}

使用System.Collections.Generic;
使用System.Linq;
使用System.Threading.Tasks;
//使用System.Data.Entity;
使用Loginnmodels2.Data;
使用Microsoft.EntityFrameworkCore;
命名空间Loginnmodels2.DataServices
{
公共接口IUserDataService
{
任务Get();
任务获取(字符串usr\U名称);
任务添加(Data.User a);
任务GetCases(用户参数usr);
作废删除(Data.User a);
}
公共类UserDataService:IUserDataService
{
dbcontext1_上下文;
公共用户数据服务(dbcontext1 ctx)
{
_上下文=ctx;
}
公共异步任务Get()
{
return wait_context.Users.toListSync();
}
公共异步任务Get(字符串usr\U名称)
{
返回wait wait GetAllUsers().Where(x=>x.user\u name==usr\u name).FirstOrDefaultAsync();
}
公共异步任务添加(Data.User a)
{
_context.Users.Add(a);
wait_context.SaveChangesAsync();
返回a;
}
公共异步void Delete(Data.User a)
{
_context.Users.Remove(a);
wait_context.SaveChangesAsync();
}
公共IQueryable GetAllUsers()
{
返回_context.Users.AsQueryable();
}
私有IQueryable GetAllCases()
{
返回_context.UserCaseRelation.AsQueryable();
}
公共异步任务GetCases(用户参数usr)
{
return wait wait GetAllCases().Where(x=>x.usr==param_usr.ToListAsync();
}
公共异步任务GetAllValidCases()
{
return await GetAllCases().Where(x=>x.connected_case.is_valid==true).toListSync();
}
}
}
这是visual studio中的设置:
在我的例子中是builder.CloseElement();他失踪了。这在Blazor应用程序中导致了一种奇怪的行为


添加CloseElement后,整个应用程序工作正常。

您能否共享您的UserHasCases类,以便我尝试重现问题?还有,你运行的是什么版本的.NETCore?哈哈,我最初认为GB是一个打字错误。这一定是配置错误的VM或Docker容器。最好添加尽可能多的苹果相关标签。并准确列出您的设置:工具、框架版本等。发现我的问题。。。。。在文件Buildertest.cs的第34行中,im缺少CloseElement();很难确定……但这仍然是好东西。感谢各位的快速响应:)
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
//using System.Data.Entity;
using Loginnmodels2.Data;
using Microsoft.EntityFrameworkCore;

namespace Loginnmodels2.DataServices
{
    public interface IUserDataService
    {
        Task<List<Data.User>> Get();
        Task<Data.User> Get(string usr_name);
        Task<Data.User> Add(Data.User a);   
        Task<List<Data.UserHasCases>> GetCases(User param_usr);
        void Delete(Data.User a);
    }

    public class UserDataService : IUserDataService
    {
        dbcontext1 _context;

        public UserDataService(dbcontext1 ctx)
        {
            _context = ctx;
        }

        public async Task<List<Data.User>> Get()
        {
            return await _context.Users.ToListAsync();
        }

        public async Task<Data.User> Get(string usr_name)
        {
            return await GetAllUsers().Where(x => x.user_name == usr_name).FirstOrDefaultAsync();
        }

        public async Task<Data.User> Add(Data.User a)
        {
            _context.Users.Add(a);
            await _context.SaveChangesAsync();
            return a;
        }

        public async void Delete(Data.User a)
        {
            _context.Users.Remove(a);
            await _context.SaveChangesAsync();            
        }

        public IQueryable<User> GetAllUsers()
        {
            return _context.Users.AsQueryable();
        }

        private IQueryable<UserHasCases> GetAllCases()
        {
            return _context.UserCaseRelation.AsQueryable();
        }

        public async Task<List<Data.UserHasCases>> GetCases(User param_usr)
        {
            return await GetAllCases().Where(x => x.usr == param_usr).ToListAsync();
        }

        public async Task<List<Data.UserHasCases>> GetAllValidCases()
        {
            return await GetAllCases().Where(x => x.connected_case.is_valid == true).ToListAsync();
        }

    }
}